1.编写函数:
unsigned int reverse_bit(25unsigned int value);
这个函数的返回 值value的二进制位模式从左到右翻转后的值。
如:
在32位机器上25这个值包含下列各位: 00000000000000000000000000011001
翻转后:(2550136832) 10011000000000000000000000000000
程序结果返回: 2550136832
int reverse_bit(unsigned int value)
{
int n = 0;
int m = 0;
int i = 0;
for(i=0; i<31; i++)//只用移31次就好
{
n = value&1;//取出value的最右边一位
value = value>>1;//value为右移后的新值
m = n|m;//将n的值赋给m最右边一位
m = m<<1;//左移为下次最右一位接收n的值
}
//printf("%d %d", m , n);
return m;
}
int main()
{
unsigned int value = 0;
scanf("%d", &value);
printf("%u", reverse_bit(value));
return 0;
}