190. 颠倒二进制位

110 阅读1分钟

题目:
颠倒给定的 32 位无符号整数的二进制位。

解法:
方法一、位运算

func reverseBits(num uint32) uint32 {
    ans := uint32(0)
    bit := uint32(0)
    for i := 0; i < 32; i ++ {
        bit = uint32(num & 1)
        num = num >> 1
        ans = ans << 1 + bit
    }
    return ans
}

方法二、分治