如何在Python中将十六进制转换为十进制?
我有一些Perl代码,其中hex()函数可以把十六进制的数据转换成十进制。请问我在Python中怎么做呢?
3 个回答
23
你可以使用字面量求值:
>>> ast.literal_eval('0xdeadbeef')
3735928559
或者直接把进制作为参数传给 int
:
>>> int('deadbeef', 16)
3735928559
有一个不太为人所知的技巧,如果你把进制 0
传给 int
,那么 Python 会尝试根据字符串的前缀来判断进制:
>>> int("0xff", 0)
255
>>> int("0o644", 0)
420
>>> int("0b100", 0)
4
>>> int("100", 0)
100
59
343
如果你说的“十六进制数据”是指像这样的字符串
s = "6a48f82d8e828ce82b82"
那么你可以使用
i = int(s, 16)
把它转换成一个整数,然后再用
str(i)
把它转换成一个十进制字符串。