<pre name="code" class="cpp">// 将一个数的二进制序列逆序,然后输出逆序之后的二进制序,所对应的数
#include <stdio.h>
// 从原数拿出最低位,放到mid中,mid左移,原数右移
int reverse(int a)
{
int mid = 0;
int bit;
int n = 32;
for (; n > 0; --n)
{
bit = a & 1;
mid <<= 1;
mid |= bit;
a >>= 1;
}
return mid;
}
int main()
{
printf("%u\n", reverse(1));
printf("%u\n", reverse(1073741824));
printf("%u\n", reverse(-1));
printf("%u\n", reverse(2147483647));
return 0;
}