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

305 投票
15 回答
860237 浏览
提问于 2025-04-15 19:19

我想把一个整数(这个整数最大为255)转换成十六进制字符串。

比如:我想输入 65,然后得到 '\x41',或者输入 255,然后得到 '\xff'

我试过用 struct.pack('c',65) 来实现这个,但当输入超过 9 时就出问题了,因为它只接受一个字符的字符串。

15 个回答

93

hex()这个函数怎么样呢?你可以在这里找到相关的文档。

hex(255)  # 0xff

如果你真的想在前面加上\,你可以这样做:

print '\\' + hex(255)[1:]
157

这段代码会把一个整数转换成一个带有0x前缀的两位十六进制字符串:

strHex = "0x%0.2X" % integerVariable
285

你在找 chr 这个函数。

看起来你把整数的十进制表示和十六进制表示搞混了,所以不太清楚你到底需要什么。根据你给的描述,我觉得下面这些代码片段可能符合你的需求。

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


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

请注意,这和 一个包含整数的十六进制字符串 是完全不同的。如果你想要的是这个,使用 hex 内置函数就可以了。

撰写回答