题目描述 颠倒给定的 32 位无符号整数的二进制位。 解题思路 颠倒二进制,则对于第i位,其颠倒之后应位于31-i位从右向左遍历二进制(n >>= 1)每次取出二进制的最后一位(n&1)将其移到正确的位置(n&1) << 31-i 代码实现 func reverseBits(num uint32) uint32 { res := uint32(0) power := uint32(31) for num != 0 { res += (num&1)<<power num >>= 1 power-- } return res }