gpt4 book ai didi

python - struct.unpack 6 个字节为short 和int 失败。为什么?

转载 作者:行者123 更新时间:2023-11-30 23:23:19 25 4
gpt4 key购买 nike

s = '\x01\x00\x02\x00\x00\x00'
struct.unpack('hi',s)

我期望得到 (1,2),但却得到错误:

error: unpack requires a string argument of length 8

如果我分别执行两个解压,它会起作用:

myshort = struct.unpack('h',s[:2])
myint = struct.unpack('i',s[2:])

此外,有趣的是,如果格式字符串是“ih”而不是“hi”,它会接受它。

我错过了什么?

最佳答案

这是因为C structure alignment 。如果您确实希望数据项保持不对齐,请在格式化字符串之前添加 = 符号

>>> s = '\x01\x00\x02\x00\x00\x00'
>>> struct.unpack('=hi',s)
(1, 2)

请参阅文档 7.3.2.1. Byte Order, Size, and Alignment

关于python - struct.unpack 6 个字节为short 和int 失败。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24045715/

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