📅  最后修改于: 2023-12-03 15:26:55.393000             🧑  作者: Mango
给定一个32位有符号整数N,求该整数N以及通过反转N的二进制表示形成的数之间的最大值。
例如:输入N为5,二进制表示为101,反转后二进制表示为010,其对应的十进制数为2,那么最大值就是5 + 2 = 7。
class Solution:
def reverseBits(self, n: int) -> int:
# 将N转换成二进制表示形式, 并将其填充为32位
N = bin(n)[2:].zfill(32)
# 对二进制表示形式进行翻转, 并转换成十进制数
M = int(N[::-1], 2)
# 将N和M相加, 得出最大值
return n + M
输入:5
输出:7