找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5893|回复: 2
收起左侧

关于MSB、LSB、大小端存储的解释

[复制链接]
ID:351097 发表于 2019-7-23 11:46 | 显示全部楼层 |阅读模式


MSB是最高有效位,LSB是最低有效位。我们用单片机和传感器通信的时候,就需要留意这个。比如单片机和温度传感器DS18B20通信,通过查询DS18B20的datasheet,可以知道DS1820是以LSB模式传输,即先发送最低位,次低位....到最高位。所以单片机每次接收数据,要采用字节位移的思路,接收一个bit,字节位移一次,直到全部接收完,数据就能在正常的位置。
  单片机存储数据,有分大端存储和小端存储。所谓大端,就是数据的高位字节存放在物理地址的低端,低字节放在物理地址的高端。小端,就是和大端反过来的。
  假设uint_16 temp = 0x12345678;存储在0x00001-0x00004的物理地址空间中,存储都是按照从最低的物理地址开始存储的,即从0x00001开始存入数据;对于大端,0x12345678是从12开始存入,然后34、56、78,从MSB作为第一个开始,从左到右。对于小端,0x12345678是从78开始存入,然后56、34、12,从LSB第一个开始,从右到左。
地址
大端
小端
0x00001
0x12
0x78
0x00002
0x34
0x56
0x00003
0x56
0x34
0x00004
0x78
0x12
有些人有疑问,比如小端怎么不是存入0x87而是0x78呢?这个问题,需要了解物理地址存储,每个物理地址可以存储一个byte,所以是按照0x78存入的,因为0x78本身就是一个字节。

回复

使用道具 举报

ID:351097 发表于 2021-5-17 08:58 | 显示全部楼层
总结:大端,高位字节开始存;小端,低位字节开始存。不过要注意的是,数据存储都是按照从最低的物理地址开始存储的
回复

使用道具 举报

ID:885138 发表于 2021-5-17 12:39 来自手机 | 显示全部楼层
说的很简洁易懂,谢谢楼主
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表