欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

编写函数: 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;
}


相关标签: c语言 二进制