其实现思路如下:
将目标数值进行末尾比特位摘取,将所摘取的bit位放到一个相同类型的末尾,目标数值bit位右移,相同类型bit位左移。
C语言的位运算符:
#include <stdio.h>//按位翻转一个无符号×××
unsigned int reverse_bit(unsigned int value)
{
unsigned int num = 0;
int i = 0;
for (i = 1; i < 32; i++)
{
num += value & 1;
num <<= 1;
value >>= 1;
}
return num;
}
测试用例如下:
int main()
{
unsigned int num = 25;
printf("%u", reverse_bit(num));
system("pause");
return 0;
}
如 有不足之处,希望指正。
转载于:https://blog.51cto.com/10743407/1747733