美文网首页
03_颠倒二进制位

03_颠倒二进制位

作者: butters001 | 来源:发表于2019-11-06 11:43 被阅读0次
class Solution:
    # @param n, an integer
    # @return an integer
    def reverseBits(self, n):
        n = bin(n)[2:]
        # 因为是32位 所以长度不够要在前面补0
        for i in range(32-len(n)):
            n = '0' + n
        reverse = n[::-1]
        return int('0b' + reverse, 2)


# leetcode 最优解
class Solution2:
    # @param n, an integer
    # @return an integer
    def reverseBits(self, n):
        r = 0
        for i in range(32):
            tmp = ((n >> 1) << 1) ^ n
            if tmp == 1:
                r = (r << 1) + 1
            else:
                r = r << 1
            n = n >> 1
        return r

相关文章

网友评论

      本文标题:03_颠倒二进制位

      本文链接:https://www.haomeiwen.com/subject/tvcubctx.html