gpt4 book ai didi

Python 结构,大小因对齐而改变。

转载 作者:太空宇宙 更新时间:2023-11-04 08:21:47 25 4
gpt4 key购买 nike

这是我要解压的十六进制代码。b'ABCDFGHa\x00a\x00a\x00a\x00a\x00\x00\x00\x00\x00\x00\x01'(它不应该有任何意义)

labels = unpack('BBBBBBBHHHHH5sB', msg)
struct.error: unpack requires a bytes argument of length 24

根据我的统计,这两个都是长度 = 23,包括我的解包函数中的格式和十六进制值的长度。我不明白。

提前致谢

最佳答案

当数据在自然边界上时,大多数处理器访问数据的速度更快,这意味着大小为 2 的数据应该在偶数地址上,大小为 4 的数据应该在可被 4 整除的地址上访问,等等。

struct 默认保持这种对齐方式。由于您的结构以 7 'B' 开头,因此添加了一个填充字节以在偶数地址上对齐下一个 'H'。为防止在 Python 中出现这种情况,请在字符串前面加上“=”。

示例:

>>> import struct
>>> struct.calcsize('BBB')
3
>>> struct.calcsize('BBBH')
6
>>> struct.calcsize('=BBBH')
5

关于Python 结构,大小因对齐而改变。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4110378/

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