c\c++ 複習基礎要點07---內存存儲 大端模式、小端模式

首先不管大端法還是小端法存儲,計算機在內存存放數據的順序都是從低地址到高地址。

所不同的是首先取低字節的數據存放在低地址還是取高字節數據存放在低地址。

 

若首先取高字節的數據放在低地址,則是大端法;

若首先取低字節的數據存放在低地址,則是小端;

 

例如數據0x1234567  (左邊是高字節,右邊是低字節)

 

大端法存放:

內存地址依次爲:          0x0001   0x0002 0x0003  0x0004

對應的數據存放依次爲:    0x01    0x23    0x45    0x67

 

 

小端法存放:

內存地址依次爲:     0x0001 0x0002  0x0003  0x0004

對應的數據存放依次爲:0x67   0x45   0x23    0x01



                                                                                                                              

 union型數據所佔的空間等於其最大的成員所佔的空間。對union型的成員的存取都是

相對於該聯合體基地址的偏移量爲 0處開始,也就是聯合體的訪問不論對哪個變量的存取都

是從 union的首地址位置開始,因此,大小端模式存儲將會直接影響union內成員的值。

 

 

例子:

 

#include<stdio.h>

 

union check

{

int  i;

char ch;

};

 

void main()

{

check  c;

c.i=1;

printf(“%d\n”,c.ch);

}

 

如果存儲爲大端模式,則輸出爲0,如果爲小端模式,則輸出爲1

 

 

發佈了96 篇原創文章 · 獲贊 4 · 訪問量 17萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章