颠倒给定的 32 位有符号整数的二进制位。
示例 1:
**输入:**n = 43261596
**输出:**964176192
解释:
| 整数 | 二进制 |
|---|---|
| 43261596 | 00000010100101000001111010011100 |
| 964176192 | 00111001011110000010100101000000 |
示例 2:
**输入:**n = 2147483644
**输出:**1073741822
解释:
| 整数 | 二进制 |
|---|---|
| 2147483644 | 01111111111111111111111111111100 |
| 1073741822 | 00111111111111111111111111111110 |
提示:
-
0 <= n <= 231 - 2 -
n为偶数pythonclass Solution: def reverseBits(self, n: int) -> int: a = [] while(n!=0): a.append(n%2) n//=2 length = len(a) if(length!=32): for i in range(length,32)://不足32位要补零 a.append(0) cnt = 0 sum = 0 for i in range(31,-1,-1): sum += a[i]*(2**cnt) cnt+=1 return sum