#include <stdio.h>
int x(int value)
{
int a[32]={0},i=0,k; //定义数组储存每个2进制位,初始化为0
while( value )
{
if( (value & 1)== 0 ) //&1相当于%2
a[i] = 0;
if( (value & 1)== 1 )
a[i] = 1;
value = value/2;
i++;
}
for(k=0;k<32;k++)
{
printf("%d",a[k]); //输出数组即翻转
}
return 0;
}
int main()
{
x(25); //调用函数
return 0;
}
编写函数
unsigned int reverse_bit(unsigned int value);
这个函数的返回值吧value的二进制位模式从左到右翻转后的值。
如在32位机器上25这个值包含下列各位:
00000000000000000000000000011001
翻转后:(2550136832)
10011000000000000000000000000000