国产探花免费观看_亚洲丰满少妇自慰呻吟_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. 優劣


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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宿州市| 韶关市| 慈溪市| 宣化县| 博野县| 和田县| 东乌| 正镶白旗| 朝阳县| 武陟县| 孝感市| 邛崃市| 鄂伦春自治旗| 龙泉市| 浦东新区| 惠东县| 上蔡县| 招远市| 康平县| 灌阳县| 出国| 仙桃市| 鹿邑县| 乌兰察布市| 锦屏县| 贵溪市| 平江县| 利川市| 梁山县| 和硕县| 黄梅县| 天镇县| 清河县| 彩票| 龙南县| 五华县| 陕西省| 盐山县| 土默特右旗| 绿春县| 剑河县|