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

2024-10-04 11:22:41 发布

您现在位置:Python中文网/ 问答频道 /正文

在Python中,我希望将整数3892转换成具有给定格式和结果\x00\x00\x0F\x34的十六进制代码。如何做到这一点?在


Tags: 代码格式整数x00x34x0f
3条回答

如果安装了numpy:

>>> import numpy as np
>>> np.int32(3892).tostring()
'4\x0f\x00\x00'

您将转换为数字的二进制表示,而不是十六进制表示(尽管Python将字节显示为十六进制)。使用^{} module进行此类转换。在

演示:

>>> struct.pack('>I', 3892)
'\x00\x00\x0f4'
>>> struct.pack('>I', 4314)
'\x00\x00\x10\xda'

请注意,“4”的ASCII代码是0x34,python只显示带有\x转义符的字节,如果它是不可打印的字符。因为0x34是可打印的,所以python将其输出为4。在

上述格式代码中的“>;”表示“big-endian”,“I”是无符号整数转换(4字节)。在

import re
print re.sub(r'([0-9A-F]{2})',r'\\x\1','%08X' % 3892)

给出:

^{pr2}$

相关问题 更多 >