这是我要解包的十六进制代码。
b'ABCDFGHa\x00a\x00a\x00a\x00a\x00a\x00\x00\x00\x00\x00\x01'(这不应该有任何意义)
labels = unpack('BBBBBBBHHHHH5sB', msg)
struct.error: unpack requires a bytes argument of length 24
根据我的统计,这两个值都是length=23,即unpack函数中的格式和十六进制值的长度。我不明白。在
提前谢谢
Tags:
当数据在自然边界上时,大多数处理器访问数据的速度更快,这意味着大小为2的数据应位于偶数地址上,大小为4的数据应在可被4整除的地址上访问,等等
默认情况下,
struct
保持此对齐。因为您的结构以7'B'开头,所以会添加一个填充字节来对齐偶数地址上的下一个'H'。为了防止在Python中出现这种情况,请在字符串前面加上“=”。在示例:
我认为
H
在您的7B
之后执行2字节对齐啊哈,对齐信息在http://docs.python.org/library/struct.html的顶部,而不是the definition of the format characters的下方。在
相关问题 更多 >
编程相关推荐