温馨提示×

C语言reverse二进制位的实现

小樊
95
2024-06-24 09:37:22
栏目: 编程语言
C语言开发者专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

#include <stdio.h>

unsigned int reverseBits(unsigned int num) {
    unsigned int count = sizeof(num) * 8 - 1;
    unsigned int reverse_num = num;
    
    num >>= 1;
    while (num) {
        reverse_num <<= 1;
        reverse_num |= num & 1;
        num >>= 1;
        count--;
    }

    reverse_num <<= count;
    return reverse_num;
}

int main() {
    unsigned int num = 10; // 00000000000000000000000000001010
    unsigned int reversed_num = reverseBits(num);

    printf("Original number: %u\n", num);
    printf("Reversed number: %u\n", reversed_num);

    return 0;
}

这段代码实现了一个函数reverseBits,用于将一个无符号整数中的二进制位逆序。在main函数中,我们定义了一个初始值为10的无符号整数,将其二进制位翻转后输出。

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读:c语言如何处理二进制数的位运算

0