用位与、位或、移位模拟流的运算就可以了,需要注意的是最后一位不移位
class Solution {
public:
uint32_t reverseBits(uint32_t n) {
uint32_t x = 0;
int j;
for(int i = 0; i < 32; ++i)
{
j = n & 1; // 取 n 最后一位数据
x = x | j; // 将 n 最后一位数据交给 x
if(i == 31)
{
return x;
}
x <<= 1; // x 左移准备接收下一位数据
n >>= 1; // n 右移准备提供下一位数据
}
return x;
}
};