如果没有 0x 前缀,则需要明确指定基数,否则无法分辨: x = int("deadbeef", 16) 使用 0x 前缀,Python 可以自动区分十六进制和十进制: >>> print(int("0xdeadbeef", 0)) 3735928559 >>> print(int("10", 0)) 10 (您 必须 指定 0 作为基数才能调用此前缀猜测行为;如果省略第二个参数, int() 将假定基数为 10。) 原文由 Dan Lenski 发布,翻译遵循 CC BY-SA 4.0 许可协议
int(hexstring, 16) 可以解决问题,并且可以使用和不使用 0x 前缀: >>> int("a", 16) 10 >>> int("0xa", 16) 10 原文由 unwind 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果没有
0x
前缀,则需要明确指定基数,否则无法分辨:使用
0x
前缀,Python 可以自动区分十六进制和十进制:(您 必须 指定
0
作为基数才能调用此前缀猜测行为;如果省略第二个参数,int()
将假定基数为 10。)