【LeetCode-190】颠倒二进制位
问题
颠倒给定的 32 位无符号整数的二进制位。
示例
输入: 00000010100101000001111010011100
输出: 00111001011110000010100101000000
解答
class Solution {
public:
uint32_t reverseBits(uint32_t n) {
uint32_t res = 0; // unsigned int
for (int i = 0; i < 32; i++) {
res <<= 1;
res |= n & 1;
n >>= 1;
}
return res;
}
};
重点思路
一个非常简单的思路,将n
的二进制低位作为res
的二进制高位。