//方法一
unsigned int reverse_bit(unsigned int n)
{
int i = 0;
int value = 0;
int bit = 0;
for (; i < 32; i++)
{
value = value << 1;
bit = n & 1;
value |= bit;
n = n >> 1;
}
return value;
}
//方法二
unsigned int reverse_bit(unsigned int x)
{
int i = 0;
int value = 0;
while (i < 32)
{
if ((x >> i) & 1)//从最低位开始检测是否为1
{
value |= 1 << (31 - i);//低位为1的话 把对应的高位改为1
}
i++;
}
return value;
}
int main()
{
unsigned int a = 0;
printf("plese enter number:");
scanf("%d",&a);
printf("after reverse:%u\n",reverse_bit(a));
return 0;
}
1.编写函数: unsigned int reverse_bit(unsigned int value); 这个函数的返回值value的二进制位模式从左到右翻转后的值。
最新推荐文章于 2020-02-10 16:15:02 发布