国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

大端小端

2019-11-06 09:40:09
字體:
來源:轉載
供稿:網友

我們在調試代碼的時候經常會遇到大小端的情況,在x86體系下是使用的小端存儲,在ARM體系下默認是小端,但是可以設置為大端模式,下面來介紹下大小端的區別

1. 誤區


一個二進制數據0b 1000,0100,0001,1000(0x8418),數據高位:0x84,低位:0x18

經常有人以為數據在大小端模式下存儲情況為:

地址 大端 小端
0x20 0x84(1000,0100) 0x18(0001,1000)
0x21 0x18(0001,1000) 0x21(0010,0001)

到小端模式變為:0b 0001,1000,0010,0001

其中的誤區是把大小端內存存儲的最小單位設為了一個bit,但是正確的設置是一個byte(8bit),所以正確的內存存儲為:

地址 大端 小端
0x20 0x84 0x18
0x21 0x18 0x84

2. 大端小端下內存的存儲


大小端存儲區別

大端模式:高位數據存在低地址,低位數據存在高地址 小端模式:高位數據存在高地址,低位數據存在低地址

int類型(假如32bit)下的存儲情況

舉例,一個int型數據0x12345678在不同模式下的存儲情況: 數據位從高到低:0x12->0x34->0x56->0x78

地址 大端 小端
0x20 0x12 0x78
0x21 0x34 0x56
0x22 0x56 0x34
0x23 0x78 0x12

數組下的存儲情況

拿一個union來舉例最合適不過,假設一個聯合體:

union { int a; chat b[4];} u;

現在a = 0x12345678,那么數組b中的存儲情況如下表:

b 地址 大端 小端
b[0] 0x20 0x12 0x78
b[1] 0x21 0x34 0x56
b[2] 0x22 0x56 0x34
b[3] 0x23 0x78 0x12

3. 優劣


關于兩者的優劣,已經好多人長篇大論分析了,但是偶看了許多,感覺沒區別。。。。。。,理解了其實都是一樣的


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新营市| 牟定县| 昌邑市| 长泰县| 海南省| 罗江县| 扬州市| 噶尔县| 茶陵县| 眉山市| 呼和浩特市| 武定县| 江油市| 铁岭市| 广灵县| 洞头县| 瑞昌市| 白城市| 白水县| 渝北区| 章丘市| 河东区| 西峡县| 同仁县| 台前县| 金坛市| 永靖县| 敖汉旗| 连平县| 陇川县| 乌审旗| 温泉县| 昌平区| 收藏| 青河县| 孟连| 磐安县| 泽库县| 奇台县| 安国市| 安国市|