Skip to content

Latest commit

 

History

History
29 lines (25 loc) · 436 Bytes

File metadata and controls

29 lines (25 loc) · 436 Bytes
  • 一个数和1与运算的结果即为其二进制最低位
10110 & 1 = 0
1011  & 1 = 1
101   & 1 = 1
10    & 1 = 0
1     & 1 = 1

将低位放在前,01101即为翻转结果
  • 实现如下
class Solution {
 public:
  uint32_t reverseBits(uint32_t n) {
    uint32_t res = 0;
    for (int i = 0; i < 31; ++i) {
      res += n & 1;
      res <<= 1;
      n >>= 1;
    }
    res += n & 1;
    return res;
  }
};