python---struct
python---struct
keywords: struct bytes python 数据互转
https://docs.python.org/3/library/struct.html
二进制数据和各种类型数据的转换
因为不同平台默认大小端不同,所以如果是多个字节最好指定一下大小端
< 小端
> 大端
常用的长度符号表示,小写表示有符号,大写表示无符号
b 1 signed char
h 2 short
i 4 int
l 4 long
q 8 long long
B 1 unsigned char
H 2 unsigned short
I 4 unsigned int
L 4 unsigned long
Q 8 unsigned long long
文档里写得很详细了,这里可以复制一些简单的例子过来
import binascii
import struct
a = 0x12345678
b = struct.pack('<L', a) # 小端,无符号长整形
print(binascii.hexlify(b)) # b'78563412'
c = struct.unpack('<L', b)[0]
print(hex(c)) # 0x12345678
# < 小端
# L 无符号 4个字节
# B 无符号 1个字节
aa = struct.unpack('<LB', b'\x78\x56\x00\x00\x12')
print(aa)
print(hex(aa[0]), hex(aa[1]))
'''
(22136, 18)
0x5678 0x12
'''
# h 有符号 2个字节
# l 有符号 4个字节
>>> from struct import *
>>> pack('hhl', 1, 2, 3)
b'\x00\x01\x00\x02\x00\x00\x00\x03'
>>> unpack('hhl', b'\x00\x01\x00\x02\x00\x00\x00\x03')
(1, 2, 3)
>>> calcsize('hhl')
8
2020/5/28
有些东西,分享就好
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异