gpt4 book ai didi

python - 在 python 中使用结构包

转载 作者:IT老高 更新时间:2023-10-28 22:07:56 26 4
gpt4 key购买 nike

我有一个整数形式的数字,我需要将其转换为 4 个字节并将其存储在一个列表中。我正在尝试在 python 中使用 struct 模块,但无法使其工作:

struct.pack("i",34);

当我期望打印二进制等效项时,这将返回 0。预期输出:

[0x00 0x00 0x00 0x22]

但是 struct.pack 返回的是空的。我做错了什么?

最佳答案

输出作为字节字符串返回,Python 将尽可能将此类字符串打印为 ASCII 字符:

>>> import struct
>>> struct.pack("i", 34)
b'"\x00\x00\x00'

注意开头的引号,即 ASCII 代码点 34:

>>> ord('"')
34
>>> hex(ord('"'))
'0x22'
>>> struct.pack("i", 34)[0]
34

请注意,在 Python 3 中,bytes 类型是 整数序列,每个值的范围为 0 到 255,因此上一个示例中的索引生成整数显示为 ".

的字节的值

有关 Python 字节字符串的更多信息,请参阅 What does a b prefix before a python string mean?

如果您希望顺序颠倒,那么您可能需要 indicate a byte order :

>>> struct.pack(">i",34)
b'\x00\x00\x00"'

其中>表示大端对齐。

关于python - 在 python 中使用结构包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18718709/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com