以80为例
其二进制//80: 0000 0000 0000 0000 0000 0000 0101 0000
编写一个函数将其二进制位模式从左到右翻置,就会得到这么一个值
0000 1010 0000 0000 0000 0000 0000 0000
这个数的十进制值为167772160
代码如下
unsigned int reverse_bit(unsigned int value){
int a = 0;
int b = 0;
int i = 0;
for (i = 1; i <=31; i++){
a = value & 1;//取value的最后一位
value = value >> 1;//value的数值右移,取前一位
b = a|b ;//将a(value)的最后一位赋给b
b = b << 1;//b左移一位,空出最后一位给value的最后一位
}
return b;
}
int main(){
printf("%d\n", reverse_bit(80));
system("pause");
return 0;
}
得到结果如下。