Reverse Bits
原创
©著作权归作者所有:来自51CTO博客作者mb63982c735c3d9的原创作品,请联系作者获取转载授权,否则将追究法律责任
Reverse bits of a given 32 bits unsigned integer.
For example, given input 43261596 (represented in binary as 00000010100101000001111010011100), return 964176192 (represented in binary as 00111001011110000010100101000000).
Follow up:
If this function is called many times, how would you optimize it?
待优化。。。
uint32_t reverseBits(uint32_t n) {
int value = 0, pos = 31;
while (n > 0) {
value += ((n & 0x1) * (1 << pos));
n = n >> 1;
--pos;
}
return value;
}
uint32_t reverseBits(uint32_t n) {
uint32_t value = 0, pos = 31;
while (n > 0) {
value |= (n & 0x1) << pos;
n >>= 1;
--pos;
}
return value;
}