Del*_*ela 7 python struct pack
我正在尝试使用该struct.pack功能
import struct
values = (0, 44)
s = struct.Struct('HI')
b = s.pack(*values)
print(b)
print(str(len(b)))
Run Code Online (Sandbox Code Playgroud)
它给了我这个输出:
b'\x00\x00\x00\x00,\x00\x00\x00'
8
Run Code Online (Sandbox Code Playgroud)
而python文档说:
Run Code Online (Sandbox Code Playgroud)Format - C Type - Python type - Standard size - Notes H - unsigned short - integer - 2 - (3) I - unsigned int - integer - 4 - (3)
所以len()应该是2 + 4 = 6,我需要大小= 6的字节
有任何想法吗?
我在Windows 10上使用Python 3.6
pack将添加填充字节,以便第二个整数是 4 字节对齐的。从文档中:
默认情况下,打包给定 C 结构体的结果包括填充字节,以便保持所涉及的 C 类型的正确对齐;要...省略隐式填充字节,请使用标准大小和对齐方式而不是本机大小和对齐方式:有关详细信息,请参阅字节顺序、大小和对齐方式
| 归档时间: |
|
| 查看次数: |
473 次 |
| 最近记录: |