2024-10-04 11:22:41 发布
网友
在Python中,我希望将整数3892转换成具有给定格式和结果\x00\x00\x0F\x34的十六进制代码。如何做到这一点?在
3892
\x00\x00\x0F\x34
如果安装了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。在
\x
4
上述格式代码中的“>;”表示“big-endian”,“I”是无符号整数转换(4字节)。在
import re print re.sub(r'([0-9A-F]{2})',r'\\x\1','%08X' % 3892)
给出:
如果安装了numpy:
您将转换为数字的二进制表示,而不是十六进制表示(尽管Python将字节显示为十六进制)。使用^{} module 进行此类转换。在
演示:
请注意,“4”的ASCII代码是0x34,python只显示带有
\x
转义符的字节,如果它是不可打印的字符。因为0x34是可打印的,所以python将其输出为4
。在上述格式代码中的“>;”表示“big-endian”,“I”是无符号整数转换(4字节)。在
给出:
^{pr2}$相关问题 更多 >
编程相关推荐