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;
}