题解:
我们可以使用位运算来解决这个问题。具体步骤如下:
- 初始化一个变量res为0,用于存储颠倒后的二进制位。
- 循环32次,每次将n的最低位取出,并将其添加到res的最高位上。
- 将n右移一位,将res左移一位。
- 返回res作为最终结果。
class Solution:
def reverseBits(self, n: int) -> int:
res = 0
for i in range(32):
res = (res << 1) | n & 1
n >>= 1
return res