Solutions to high-frequency interview questions of LeetCode in C++17, taking into account both efficiency and comprehensibility.
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;
}
};