位运算
- 思路:
- 逐位颠倒,第 i 位二进制移动到 (31 - i) 位上
-
result |= (n & 1) << (31 - i);
-
- 逐位颠倒,第 i 位二进制移动到 (31 - i) 位上
class Solution {
public:uint32_t reverseBits(uint32_t n) {uint32_t result = 0;for (int i = 0; i < 32 && n > 0; ++i) {result |= (n & 1) << (31 - i);n >>= 1;}return result;}
};
- 据了解,还有空间复杂度为 O(1) 的算法,后续研究;