leedcode 颠倒二进制

使用bin函数
class Solution:
    def reverseBits(self, n: int) -> int:
        # 将整数 n 转换为二进制字符串,并用 左0 填充至32位
        binary_str = bin(n)[2:].zfill(32)

        # 反转二进制字符串
        reversed_str = binary_str[::-1]

        # 将反转后的二进制字符串转换为整数
        reversed_int = int(reversed_str, 2)

        # 返回反转后的整数
        return reversed_int

使用位运算

class Solution:
    def reverseBits(self, n: int) -> int:
        # 初始化一个变量来存储反转后的比特位结果
        res = 0

        # 迭代每个比特位(32次,对于一个32位的整数)
        for i in range(32):
            # 将当前结果左移1位,并与n的最低位进行按位或运算
            res = (res << 1) | (n & 1)

            # 将n右移1位,以移动到下一位
            n >>= 1

        # 返回反转比特位后的最终结果
        return res

 

posted @ 2024-03-06 10:49  Junior_bond  阅读(12)  评论(0)    收藏  举报