비트 연산의 10진 변환 2진법 16진 변환 2진법

비트 연산을 이용하여 진법 간의 전환을 진행하다
#include 
#include 

int inttoBin(unsigned int num)
{
	int i;
	unsigned int mask = 0x80000000;
	for(i = 0; i < 32; i++)
	{
		if((num & mask) == mask)
		{
			printf("1");
		}
		
		else
		{
			printf("0");
		}

		num = num << 1;
		
		if((i + 1) % 4 ==0)
		{
			printf(" ");
		}
	}
	
	printf("
"); } int inttoox(unsigned int num) { int i; unsigned int temp = num; char s[11]; memset(s,0,sizeof(char)); s[0] = "0"; s[1] = "x"; s[10] = "\0"; unsigned int mask = 0x0000000f; for(i = 2; i < 10; i++) { if((temp & mask) > 10) { s[11-i] = (temp & mask) - 10 + 'a'; } else { s[11-i] = (temp & mask) + '0'; } temp = temp << 4; } printf("result = %s
",s); //printf("result = %s
",s); } int main() { unsigned int num; char s[11]; printf("intput a number
"); scanf("%u",&num); inttoBin(num); inttoox(num); return 0; }

좋은 웹페이지 즐겨찾기