欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

如何把十进制数 (long 型)分别以二进制和十六进制形式输出

程序员文章站 2022-07-15 08:02:22
...

如何把十进制数 (long 型)分别以二进制和十六进制形式输出

分析与解答:
Python 的左移 N 位代表乘以 2 的 N 次方,右移代表除以 2 的 N 次方。因此先将数值右移 1位,得到除以 2 的 1 次方(整除)后的数值 b,如 10 除以 2 的 0 次方,得到 b=lO;再取 b整除 2后的余数 0,即二进制的最后一位,以此类推,得到 10转换 2进制的结果 1010: 二 进制的位数有 64 位,以位数为上限,对输入的 10 进制数字进行循环转换操作,当循环达 64 次时终止,示例代码如下:

def inttobinary(n):
    hexNum=8*8
    bit=[]
    for i in range(hexNum):
        b=n>>i
        c,d=divmod(b,2)
        bit.append(str(d))
    return ''.join(bit[::-1])
inttobinary(10)
def inttohex(s):
    hexs=''
    remainder=0
    while s!=0:
        remainder=s%16
        if remainder<10:
            hexs=str(remainder+int('0'))+hexs
        else:
            hexs=str(remainder-10+ord('A'))+hexs
        s=s>>4
    return chr(int(hexs))
inttohex(10)
相关标签: leetcode