unsigned int reverse_bit(unsigned int value)
{
unsigned int i = 0;
unsigned int ret = 0;
unsigned int tmp = 0;
unsigned int x = 0;
for (i = 0; i < 32; i++)
{
tmp = ret;
if ((value >> i) & 1 == 1)
{
x = (1<< (32 - (i+1)));
ret = tmp^x;
}
}
return ret;
}
int main()
{
printf("%u" ,reverse_bit(25));
system("pause");
return 0;
}
***********************注意
输出时 一定要为%u,要不然你都不知道你哪错了。