算法
(位运算) $O(1)$
分离出输入数字的每一位,最低位左移31bit,次低位左移30bit,以此类推。
C++ 代码
class Solution {
public:
uint32_t reverseBits(uint32_t n) {
uint32_t ans = 0;
int i = 32;
while (i--) {
ans<<=1;
ans+=n&1;
n>>=1;
}
return ans;
}
};