Python 字节串比特串转换以及大小端相关的几个方法

本文介绍了Python中字节串与大小端相关的知识,包括如何查看系统字节序,利用binascii、hex、bytes、int、str等模块进行转换,以及struct模块在处理字节数据时的作用。此外,还探讨了字节串的大小端互换方法和不同类型的字节串互转策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

大端 小端 介绍

查看当前系统是大端还是小端:sys.byteorder,Windows是小端的,而小端在我们看来是和常规反向地

关于大小端的知识,推荐几篇文章:
CPU架构决定大小端模式
理解大端与小端字节序
字符编码方式及大端小端

大端小端取决于CPU架构,powerpc,aix、SPARC等是大端;x86架构处理器(Intel、AMD,PC)、arm架构处理器(arm,手机)是小端
大端存储模式是指字或半字的最高字节(Most Significant
Bit,MSB)存放在内存的最低位字节地址上,而字数据的低字节则存放在高地址中。 (1) 数据在寄存器中都是以大端模式次序存放的。
(2) 对于内存中以小端模式存放的数据。CPU存取数成时,小端和大端之间的转换是通过硬件实现的,没有数据加载/存储的开销。

这也是为什么说Windows系统是小端,而Linux可能是大端也可能是小端

相关模块

· binascii : str,bytes 字节串与ascii字符
· hex : str 十进制与十六进制
· bytes : 类 单位为bytes 字节串 hex, decode 字节串与十六进制字符串、字符编码
· int : to_bytes, from_bytes 十进制与字节串,必须指定大小端
· str : encode 字符编码至字节串
· bitstring : 第三方类 单位为bit 比特串 .Bits(bytes) .bin .hex .oct 比特串(切片、索引、搜索)与字节串(输入)与字符串(各种进制输出),在生成时可以指定大小端,索引的元素值是bool值
pip安装
使用手册网页版
使用手册pdf版
· struct : 按照内置算法转换类型至C类型 类型结构与字节串

读取符号位

我就因为需要这个功能才相对字节串甚至比特串操作的,虽然最后没用到专门的模块
最终方法:

0 if b[0]<=128 else 1
# 84.7 ns
b[0]<=128
# 79 ns
b='\xff'
bin(int(b.hex(),16))[2:].rjust(len(b)*8,'0')
# 828 ns
bin(b[0])[2<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值