您的位置:首页 > 编程语言 > C语言/C++

【C语言位运算的应用】如何按bit位翻转一个无符号整型

2016-03-04 22:44 429 查看
其实现思路如下:

将目标数值进行末尾比特位摘取,将所摘取的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;
}
如 有不足之处,希望指正。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C语言 位运算 翻转