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

?
?
?