unsigned int reverse_bit(unsigned int value)
{
int i=0;
unsigned int ret=0;
for(i=0;i<32;i++)
{
ret+=((value>>i)&1)*pow(2,31-i);//二进制中的每位乘以翻转后所对应的权
}
return ret;
}
第二种方法
unsigned int reverse_bit(unsigned int value)
{
int i=0;
unsigned int ret=0;
for(i=0;i<32;i++)
{
ret=ret<<1;
ret|=(value>>i)&1;
}
return ret;
}
int main()
{
int value=25;
printf("%u", reverse_bit(value));
system("pause");
return 0;
}
//编写函数://unsigned int reverse_bit(unsigned int value);//这个函数的返回 值value的二进制位模式从左到右翻转后的值。////如://在32位机器上25这个值包含下列各位://00000000000000000000000000011001//翻转后:(2550136832)//10011000000000000000000