C语言写一个按位反转的函数
时间: 2023-03-05 12:47:17 浏览: 112
以下是一个使用C语言实现按位反转的函数:
```c
unsigned int reverseBits(unsigned int num) {
unsigned int reversed = 0;
int bits = sizeof(num) * 8; // 总共需要反转的位数
while (bits--) {
reversed <<= 1; // 左移一位,为下一位反转留出空位
reversed |= num & 1; // 把num最右边的一位反转并加入reversed
num >>= 1; // 右移num,为下一次反转留出空位
}
return reversed;
}
```
此函数将按位反转给定的32位无符号整数`num`。它通过遍历`num`中的所有位,从最低位开始,将每一位加入到一个新的无符号整数`reversed`中,以生成一个反转的结果。最后,函数返回`reversed`,即为按位反转的结果。
以下是一个简单的示例程序,使用上述函数反转一个整数并将结果打印到控制台:
```c
#include <stdio.h>
unsigned int reverseBits(unsigned int num);
int main() {
unsigned int num = 123456789;
unsigned int reversed = reverseBits(num);
printf("Original: %u\n", num);
printf("Reversed: %u\n", reversed);
return 0;
}
```
输出:
```
Original: 123456789
Reversed: 3994828448
```
阅读全文