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