python3 bytes解析为数字 struct unpack

本文介绍如何使用Python的struct库解析二进制数据,包括不同字节序和数字类型的处理方法。通过实例演示了如何将二进制流转换为UINT8、UINT16、UINT32和UINT64等数字类型。
部署运行你感兴趣的模型镜像

主要分为解析为 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

在这里插入图片描述

您可能感兴趣的与本文相关的镜像

Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值