找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 7022|回復(fù): 2
收起左側(cè)

關(guān)于MSB、LSB、大小端存儲(chǔ)的解釋

[復(fù)制鏈接]
ID:351097 發(fā)表于 2019-7-23 11:46 | 顯示全部樓層 |閱讀模式


MSB是最高有效位,LSB是最低有效位。我們用單片機(jī)和傳感器通信的時(shí)候,就需要留意這個(gè)。比如單片機(jī)和溫度傳感器DS18B20通信,通過(guò)查詢DS18B20的datasheet,可以知道DS1820是以LSB模式傳輸,即先發(fā)送最低位,次低位....到最高位。所以單片機(jī)每次接收數(shù)據(jù),要采用字節(jié)位移的思路,接收一個(gè)bit,字節(jié)位移一次,直到全部接收完,數(shù)據(jù)就能在正常的位置。
  單片機(jī)存儲(chǔ)數(shù)據(jù),有分大端存儲(chǔ)和小端存儲(chǔ)。所謂大端,就是數(shù)據(jù)的高位字節(jié)存放在物理地址的低端,低字節(jié)放在物理地址的高端。小端,就是和大端反過(guò)來(lái)的。
  假設(shè)uint_16 temp = 0x12345678;存儲(chǔ)在0x00001-0x00004的物理地址空間中,存儲(chǔ)都是按照從最低的物理地址開(kāi)始存儲(chǔ)的,即從0x00001開(kāi)始存入數(shù)據(jù);對(duì)于大端,0x12345678是從12開(kāi)始存入,然后34、56、78,從MSB作為第一個(gè)開(kāi)始,從左到右。對(duì)于小端,0x12345678是從78開(kāi)始存入,然后56、34、12,從LSB第一個(gè)開(kāi)始,從右到左。
地址
大端
小端
0x00001
0x12
0x78
0x00002
0x34
0x56
0x00003
0x56
0x34
0x00004
0x78
0x12
有些人有疑問(wèn),比如小端怎么不是存入0x87而是0x78呢?這個(gè)問(wèn)題,需要了解物理地址存儲(chǔ),每個(gè)物理地址可以存儲(chǔ)一個(gè)byte,所以是按照0x78存入的,因?yàn)?x78本身就是一個(gè)字節(jié)。

回復(fù)

使用道具 舉報(bào)

ID:351097 發(fā)表于 2021-5-17 08:58 | 顯示全部樓層
總結(jié):大端,高位字節(jié)開(kāi)始存;小端,低位字節(jié)開(kāi)始存。不過(guò)要注意的是,數(shù)據(jù)存儲(chǔ)都是按照從最低的物理地址開(kāi)始存儲(chǔ)的
回復(fù)

使用道具 舉報(bào)

ID:885138 發(fā)表于 2021-5-17 12:39 來(lái)自觸屏版 | 顯示全部樓層
說(shuō)的很簡(jiǎn)潔易懂,謝謝樓主
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表