主要分为解析为 UINT8、UINT16、UINT32、UINT64等数字类型,即分别对应将每1、2、4、8个字节放一起解释为一个数字,这其中对于多于一个字节的情况又分大小端处理
推荐使用自带的struct库解析,方法比较通用
用法
strcut.unpack(fmt, byte) 返回值是一个list,从二进制流类型,变为int型
其中fmt为格式化字符串,分为两部分,开头控制大小端,后面通过字符控制数字类型,常用如下
fmt 含义
! 大端序,和>相同
大端序
< 小端序
B uint8类型
b int8类型
H uint16类型
h int16类型
I uint32类型
i int32类型
L uint64类型
l int64类型
s ascii码,s前带数字表示个数
更多详细fmt的用法可用help(strcut)
例子
import struct
m = b'\x01\x01\x02\x01\x02\x03\x04' #7个字节
a=struct.unpack('!BHI', m)
for i in a:
print(hex(i)) # 0x1 0x102 0x1020304