如果没有 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)