算法——190、颠倒二进制位

用位与、位或、移位模拟流的运算就可以了,需要注意的是最后一位不移位

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;
    }
};
上一篇:【每日一题】190. 颠倒二进制位


下一篇:做了6年Android开发,靠着这份190页的面试资料,看看这篇文章吧!