大端/小端模式

大小端緣由

爲何會有大小端模式之分呢?這是由於在計算機系統中,咱們是以字節爲單位的,每一個地址單元都對應着一個字節,一個字節爲 8bit。可是在C語言中除了8bitchar以外,還有16bitshort型32bitlong型(要看具體的編譯器),另外,對於位數大於 8位的處理器,例如16位或者32位的處理器,因爲寄存器寬度大於一個字節,那麼必然存在着一個如何將多個字節安排的問題。所以就致使了大端存儲模式小端存儲模式markdown

簡述

  1. 大端模式:字數據的高字節存儲在低地址中,而字數據的低字節則存放在高地址中,讀取時從左往右讀;
  2. 小端模式:字數據的低字節存儲在低地址中,而字數據的高字節則存放在高地址中,讀取時從右往左讀;
  3. 大端模式進行數據存放符合人類的正常思惟,而小端模式進行數據存放利於計算機處理;
  4. 採用大端仍是小端與CPU設計編譯器的實現都有關係,但就像吃雞蛋無論是從大端開始打碎,仍是小端開始打碎,數據儲存順序的分歧並不會影響實際的數據讀取

區別

咱們以16位寬的數0x1234舉例假設他們的起始地址:0X6000;app

1. 在小端模式CPU內存中存放方式

內存地址 0X6000 0X6001
存放內容 0X34 0X12

讀取時從右向左讀;ide

2. 在大端模式CPU內存中存放方式

內存地址 0X6000 0X6001
存放內容 0X12 0X34

讀取時從左向右讀;ui

相關文章
相關標籤/搜索