void putBinary(int number)//将一个int整形数字的二进制形式正序,倒序输出
{
int value;
int i;
for (i = 31; i >= 0;i--)//正序
{
int value = number >> i & 1;
printf("%d", value);
}
printf("\n");
for (i = 0; i <= 31; i++)//倒序
{
int value = number >> i & 1;
printf("%d", value);
}
printf("\n");
}
void putBinary(char c) //将一个字符的二进制形式正序,倒序输出
{
int value;
int i;
for (i = 7; i >= 0; i--)//正序
{
value = (int)c >> i & 1;
printf("%d", value);
}
printf("\n");
for (i = 0; i <= 7; i++)//倒序
{
value = (int)c >> i & 1;
printf("%d", value);
}
printf("\n");
}
int main(void)
{
printf("'0' = %d, A = %d, a = %d\n",'0','A','a');
printf("'5' - '0' = %d\n",(int)('5' - '0'));
putBinary(0);
putBinary(65);
putBinary(97);
putBinary('0');
putBinary('A');
putBinary('a');
while (1);
return 0;
}
一些其他方法
void f(int n)
{
if (n)
f(n / 2);
else
return;
printf("%d", n % 2);
}
void f(int input)
{
int i = 0;
int arr[32] = { 0 };
for (i = 0; i < 32; i++)
{
arr[i] = input % 2;//除2取余法放入数组
input = input / 2;
}
for (i = 31; i >= 0; i--)
{
printf("%d", arr[i]);//余数倒序输出
}
}