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

新手上路,请多包涵

我想将一个整数(<= 255)转换为十六进制字符串表示形式

例如:我想通过 '\xff' 65 255 出来 '\x41'

我试过用 struct.pack('c', 65 ) 来做这件事,但是这会阻碍上面的任何东西 9 因为它想接受一个字符串

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

阅读 521
2 个回答

您正在寻找 chr 函数。

您似乎将整数的十进制表示和整数的十六进制表示混合在一起,因此并不完全清楚您需要什么。根据您提供的描述,我认为这些片段之一显示了您想要的内容。

 >>> chr(0x65) == '\x65'
True

>>> hex(65)
'0x41'
>>> chr(65) == '\x41'
True

请注意,这与 包含十六进制整数的字符串 完全不同。如果这是您想要的,请使用 hex 内置。

原文由 Mike Graham 发布,翻译遵循 CC BY-SA 2.5 许可协议

这会将整数转换为带有 0x 前缀的 2 位十六进制字符串:

 strHex = "0x%0.2X" % integerVariable

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

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