Python将十进制转换为十六进制

2024-04-18 06:34:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我这里有一个函数,可以把十进制数转换成十六进制数,但它按相反的顺序打印。我该怎么解决?

def ChangeHex(n):
    if (n < 0):
        print(0)
    elif (n<=1):
        print(n)
    else:
        x =(n%16)
        if (x < 10):
            print(x), 
        if (x == 10):
            print("A"),
        if (x == 11):
            print("B"),
        if (x == 12):
            print("C"),
        if (x == 13):
            print("D"),
        if (x == 14):
            print("E"),
        if (x == 15):
            print ("F"),
        ChangeHex( n / 16 )

Tags: 函数if顺序defelseprintelifchangehex
3条回答

这个呢:

hex(dec).split('x')[-1]

示例:

>>> d = 30
>>> hex(d).split('x')[-1]
'1e'

~富有

通过在split()的结果中使用-1,即使split返回一个1元素的列表,这也可以工作。

这并不完全是您所要求的,但是您可以在python中使用“hex”函数:

>>> hex(15)
'0xf'

如果您想自己编写代码而不是使用内置函数hex(),您只需在打印当前数字之前执行递归调用:

def ChangeHex(n):
    if (n < 0):
        print(0)
    elif (n<=1):
        print n,
    else:
        ChangeHex( n / 16 )
        x =(n%16)
        if (x < 10):
            print(x), 
        if (x == 10):
            print("A"),
        if (x == 11):
            print("B"),
        if (x == 12):
            print("C"),
        if (x == 13):
            print("D"),
        if (x == 14):
            print("E"),
        if (x == 15):
            print ("F"),

相关问题 更多 >