一、题目
颠倒给定的 32 位无符号整数的二进制位。
二、代码
解法一:
思路:逐位颠倒
class Solution {
public:
uint32_t reverseBits(uint32_t n) {
uint32_t ans=0;
for(int i=0;i<32;++i){
ans|=(n&0x1)<<(31-i);
n>>=1;
}
return ans;
}
};
解法二:
思路:也是逐位颠倒,但和i无关,将ans左移
class Solution {
public:
uint32_t reverseBits(uint32_t n) {
uint32_t ans=0;
for(int i=0;i<32;++i){
ans=(ans<<1)|(n&0x1);
n>>=1;
}
return ans;
}
};