【算法】二进制数的逆序输出

    xiaoxiao2025-02-02  1

    问题的提出

    给定一个无符号32位整数,要求将其2进制形式数反转(即首尾颠倒,非按位取反),输出反转后的整数。 即如果给定的数:43261596,它的二进制数为:00000010100101000001111010011100,将二进制数反转得到:00111001011110000010100101000000,所以期望的输出结果应该为:964176192

    问题的解决

    下面是Python版本的解答程序

    #coding=utf-8 def reverseBit(dat): res = 0 for i in range(0, 32, 1): res = res << 1 # 向右移动一位,给下一个数据提供位置 res = res | (dat & 1) # 取出最右边的第1位二进制数字 dat = dat >> 1 # 获取下一个二进制数字 return res if __name__ == '__main__': print reverseBit(43261596)

    打印输出结果为:

    964176192

    转载请注明原文地址: https://ju.6miu.com/read-1296005.html
    最新回复(0)