整数的位反转是指将一个整数的二进制表示中的位顺序颠倒,例如将10100101颠倒为01010101。在计算机中,整数通常以补码表示,因此位反转也需要考虑符号位。
在补码中,正整数的最高位为0,负整数的最高位为1。因此,在位反转时,需要先判断整数的符号位,然后再进行位反转。
以下是一个示例代码,实现整数的位反转:
def reverseBits(n: int) -> int:
# 将整数转换为二进制字符串
binary_str = bin(n)[2:].zfill(32)
# 判断整数的符号位
if binary_str[0] == '1':
# 如果是负数,则将符号位保留,其余位翻转
reversed_str = binary_str[0] + binary_str[1:31][::-1]
else:
# 如果是正数,则将所有位翻转
reversed_str = binary_str[::-1]
# 将翻转后的二进制字符串转换为整数
return int(reversed_str, 2)
该函数接受一个整数n作为输入,返回其位反转后的整数。
例如,对于输入10100101,该函数将返回01010101。对于输入-10100101,该函数将返回-10100101。
领取专属 10元无门槛券
手把手带您无忧上云