MSB/LSB(big endian/little endian)

本文介绍了MSB(最高有效位)和LSB(最低有效位)的概念,并探讨了在Big Endian和Little Endian两种字节序中的差异。以PowerPC和x86系列CPU为例,阐述了两种存储方式的特点。同时,讨论了在Python中处理二进制文件时如何处理大小端问题,推荐使用struct模块进行解析,并给出了相关格式符的解释和使用示例。

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

1、什么是MSB/LSB(big endian/little endian)

LSB(Least Significant Bit),意为最低有效位。

MSB(Most Significant Bit),意为最高有效位。若MSB=1,则表示数据为负值,若MSB=0,则表示数据为正。

两大CPU派系指定的是Motorola的PowerPC系列CPU和Intel的x86系列CPU。PowerPC系列采用big endian方式存储数据,而x86系列则采用little endian方式存储数据。

小端字节序(little endian):低字节存于内存低地址,高字节存于内存高地址,对应LSB。
大端字节序(big endian):高字节存于内存低地址,低字节存于内存高地址,对应MSB。

例如一个数据0x0102,01是高位,02是低位。

数据的位次是由左到右逐渐降低的

如果一个数据靠左(高位)的位次分布在内存地址序号较大的位置上,那你的机器(CPU)就是little endian,反之就是big endian。

网上的看图说明例子:

在这里插入图片描述

2、python解析时二进制文件时注意大小端问题

可以用struct包来解析二进制文件:

struct.unpack(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值