编写函数: unsigned int reverse_bit(unsigned int value); 这个函数的返回值value的二进制位模式从左到右翻转后的值。
程序员文章站
2022-03-08 15:37:22
...
本题主要采用从最低比特位开始寻找,通过按位与上一个一,来检测它的最低比特位,然后检测它的第二个比特位,然后逐次递增,这里采用一个for循环来进行判定,条件成立后,将data进行或运算,
在这里主要是从最高位开始进行或运算,然后进行左移31位,这样可以将指定为设置为一。
#include<stdlib.h>
#pragma warning(disable: 4996)
unsigned int bit_reverse(int x)
{
int data = 0;
int num = sizeof(int)* 8;//求整型的比特位,在这里为32
int i = 0;
while (i < num)
{
if ((x>>i)& 1)
{
data |= 1 << (31-i);
}
i++;
}
return data;
}
int main()
{
int data = 0;
printf("please enter a number: ");
scanf("%d", &data);
printf("reverse data: %u\n",bit_reverse(data));
system("pause");
return 0;
}
推荐阅读
-
编写函数: unsigned int reverse_bit(unsigned int value); 这个函数的返回值是value的二进制位模式从左到右翻转后的值。 如: 在32位机器上2
-
:unsigned int reverse_bit(unsigned int value); //这个函数的返回值value的二进制位模式从左到右翻转后的值
-
编写函数: unsigned int reverse_bit(unsigned int value); 这个函数的返回值value的二进制位模式从左到右翻转后的值。 如: 在32位机器上25这
-
.编写函数: unsigned int reverse_bit(unsigned int value); 这个函数的返回值value的二进制位模式从左到右翻转后的值。 如: 在32位机器上2
-
C语言——编写函数:unsigned int reverse_bit(unsigned int value); 这个函数的返回值value的二进制位模式从左到右翻转后的值
-
编写函数:(不使用位操作符) unsigned int reverse_bit(unsigned int value); 这个函数的返回值value的二进制位模式从左到右翻转后的值。
-
unsigned int reverse_bit(unsigned int value); 这个函数的返回值value的二进制位模式从左到右翻转后的值。
-
unsigned int reverse_bit(unsigned int value); 这个函数的返回值value的二进制位模式从左到右翻转后的值。
-
unsigned int reverse_bit(unsigned int value); 这个函数的返回值value的二进制位模式从左到右翻转后的值。
-
unsigned int reverse_bit(unsigned int value); 这个函数的返回值value的二进制位模式从左到右翻转后的值。