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 )
25 个回答
48
这不是你问的具体内容,但你可以在Python中使用“hex”这个函数:
>>> hex(15)
'0xf'
107
这个怎么样:
hex(dec).split('x')[-1]
举个例子:
>>> d = 30
>>> hex(d).split('x')[-1]
'1e'
通过在split()的结果中使用-1,即使split返回的列表只有一个元素,这样也能正常工作。
26
如果你想自己写代码,而不是使用内置的函数 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"),