位运算
- 思路:
- 逐位颠倒,第 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) 的算法,后续研究;