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

新手上路,请多包涵

如何将十六进制字符串转换为整数?

 "0xffff"   ⟶   65535
"ffff"     ⟶   65535

原文由 Matt 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 940
2 个回答

如果没有 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 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题