天天看點

極簡進制轉換器

//輸入一個整數,能求出其二進制,八進制等等

#include <stdio.h>

int getOctNum(char *pstr)

{

int i, num = 0;

for(i = 0; i < 3; ++i)

{

	num *= 2;

	num += pstr[i] - '0';

}

return num;
           

}

int main()

{

int num = -345, n;

char bin[32];

char *p = (char *)&num;

int i, j, index = 0;

//求num的二進制碼

for(i = 3; i >= 0; --i)

{

	n = p[i];

	for(j = 7; j >= 0; --j)

	{

		bin[index++] = (n >> j & 1) + '0';

	}

}

for(i = 0; i < 32; ++i)

	printf("%c", bin[i]);

printf("\n");



//求八進制碼

n = bin[0] - '0';

n *= 2;

n += bin[1] - '0';

printf("%d", n);

p = bin + 2;

for(i = 0; i < 10; ++i)

{

	printf("%d", getOctNum(p));

	p += 3;

}

printf("\n");



return 0;
           

}

//*****************************************************************************************************************

繼續閱讀