爲何會有大小端模式之分呢?這是由於在計算機系統中,咱們是以字節爲單位的,每一個地址單元都對應着一個字節,一個字節爲
8bit
。可是在C語言中除了8bit
的char
以外,還有16bit
的short型
,32bit
的long型
(要看具體的編譯器),另外,對於位數大於8位
的處理器,例如16位
或者32位
的處理器,因爲寄存器寬度
大於一個字節
,那麼必然存在着一個如何將多個字節安排的問題。所以就致使了大端存儲模式
和小端存儲模式
。markdown
CPU設計
、編譯器的實現
都有關係,但就像吃雞蛋無論是從大端開始打碎,仍是小端開始打碎,數據儲存順序的分歧並不會影響實際的數據讀取
;咱們以16位寬的數0x1234
舉例假設他們的起始地址:0X6000;app
內存地址 | 0X6000 | 0X6001 |
---|---|---|
存放內容 | 0X34 | 0X12 |
讀取時從右向左讀;ide
內存地址 | 0X6000 | 0X6001 |
---|---|---|
存放內容 | 0X12 | 0X34 |
讀取時從左向右讀;ui