我有一个整数形式的数字,我需要将其转换为4个字节并将其存储在列表中。我试图在python中使用struct模块但是无法让它工作:
struct.pack("i",34);
当我期望打印二进制等效时,返回0。 预期产出:
[0x00 0x00 0x00 0x22]
但是struct.pack返回空。我做错了什么?
答案 0 :(得分:47)
输出作为字节字符串返回,Python会尽可能打印ASCII字符这样的字符串:
>>> import struct
>>> struct.pack("i",34)
'"\x00\x00\x00'
注意开头的引用,即ASCII码点34:
>>> ord('"')
34
>>> hex(ord('"'))
'0x22'
如果您希望撤消订购,那么您可能需要indicate a byte order:
>>> struct.pack(">i",34)
'\x00\x00\x00"'
其中>
表示大端对齐。