如何在Python中将十六进制转换为十进制?

188 投票
3 回答
490911 浏览
提问于 2025-04-17 12:40

我有一些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
>>> int("0xff", 16)
255

或者

>>> int("FFFF", 16)
65535

查看文档.

343

如果你说的“十六进制数据”是指像这样的字符串

s = "6a48f82d8e828ce82b82"

那么你可以使用

i = int(s, 16)

把它转换成一个整数,然后再用

str(i)

把它转换成一个十进制字符串。

撰写回答