方法一 移位法
class Solution {
public:
uint32_t reverseBits(uint32_t n) {
uint32_t ret=0;
for(int i=0;i<32;i++)
{ ret = ret << 1;
unsigned bit = n & 1;
n=n>> 1;
ret |= bit;
}
return ret;
}
};
方法二 分治法
class Solution {
public:
uint32_t reverseBits(uint32_t n) {
n=(n>>16)|(n<<16);
n=(n>>8&0x00ff00ff)|(n<<8&0xff00ff00);
n=(n>>4&0x0f0f0f0f)|(n<<4&0xf0f0f0f0);
n=(n>>2&0x33333333)|(n<<2&0xcccccccc);
n=(n>>1&0x55555555)|(n<<1&0xaaaaaaaa);
return n;
}
};
参考链接:https://leetcode-cn.com/problems/reverse-bits/solution/fu-xue-ming-zhu-xun-huan-yu-fen-zhi-jie-hoakf/