编写一个函数,unsigned int reverse_bit(unsigned int value);
这个函数的返回值value的二进制位模式从左到右翻转后的值。
如:
在32位机器上25这个值包含下列各位:
00000000000000000000000000011001
翻转后:(2550136832)
10011000000000000000000000000000
程序结果返回:
2550136832
第一种做法,比较容易想,实际上就是将该位的权改变一下,我们都知道二进制序列中最低位是2^0,最高位是2^31,所以就把x的权该为目标位的权。
比如:25的二进制序列11001
最低位的1乘上2^31就将1移到了最高位,以此类推。
unsigned int bit_reverse(unsigned int x)
{
int ret = 0;
int i = 0;
for (i = 0; i <