unsigned int reverse_bit(unsigned int value);这个函数的返回 值value的二进制位模式从左到右翻转后的值。

来源:互联网 发布:matlab 声明一个数组 编辑:程序博客网 时间:2024/06/14 23:58

unsigned int reverse_bit(unsigned int value);
这个函数的返回 值value的二进制位模式从左到右翻转后的值。

如:
在32位机器上25这个值包含下列各位:
00000000000000000000000000011001
翻转后:(2550136832)
10011000000000000000000000000000
程序结果返回:
2550136832

#include <stdio.h>#include <math.h>unsigned int reverse_bit(unsigned int value){    unsigned int sum = 0;    int i = 0;    for(i = 0;i<32;i++)    {        //sum|=((value>>i)&1)<<(31-i);//方法一        sum+=((value>>i)&1)*pow(2,31-i);//方法二    }    return sum;}int main(){    int n = 25;    unsigned int ret=reverse_bit(n);    printf("ret=%u\n",ret);    return 0;}

这里写图片描述

阅读全文
0 0
原创粉丝点击