协慌网

登录 贡献 社区

在 Python 中将十六进制字符串转换为 int

如何在 Python 中将十六进制字符串转换为 int?

我可能将其0xffff为 “ 0xffff ” 或 “ ffff ”。

答案

如果没有 0x 前缀,则需要显式指定基数,否则无法分辨:

x = int("deadbeef", 16)

使用 0x 前缀,Python 可以自动区分十六进制和十进制。

>>> print int("0xdeadbeef", 0)
3735928559
>>> print int("10", 0)
10

(您必须0指定为基数,才能调用此前缀猜测行为;省略第二个参数意味着假定基数为 10。)

int(hexString, 16)可以解决问题,并且可以使用和不使用 0x 前缀:

>>> int("a", 16)
10
>>> int("0xa",16)
10

对于任何给定的字符串 s:

int(s, 16)