unsigned int reverse_bit(unsigned int value);

时间:2023-03-08 16:12:25
 /*编写函数
unsigned int reverse_bit(unsigned int value);
这个函数的返回值吧value的二进制位模式从左到右翻转后的值。
如在32位机器上25这个值包含下列各位:
00000000000000000000000000011001
翻转后:(2550136832)
10011000000000000000000000000000
*/
#include <stdio.h>
#include <math.h>
int reverse_bit(unsigned int value)
{
int ret = ;
int bit = ;
int i;
for( i=; i < ; i++)
{
ret = ret << ; //左移一位,保存前一位
//注意dst <<= 1这条语句必须出现在dst |= 1之前,
//否则duo左移一位
bit = value & ; //取出最后一位
value = value >> ;//值右移,取下一位
ret = bit | ret; //最后一位赋给ret }
return ret;
}
int main()
{
printf("%u\n",reverse_bit());
return ;
}

unsigned int reverse_bit(unsigned int value);