本機大端 小端模式測試及解釋

2021-05-23 20:36:34 字數 1055 閱讀 9417

測試程式**:

#include

void checkcpuendian();

int main()

void checkcpuendian()

c;c.i = 0x12345678;

printf("%s/n", (0x12 == c.s[0]) ? "大端模式" : "小端模式");

}我的解釋:

我們知道,聯合體的不同成員在記憶體中空間是重疊所以……

給聯合變數c的第乙個成員(無符號整型i,佔4個位元組)賦值

c.i = 0x12345678;

對於大端模式,資料最高有效位儲存在最低位址,因此 i 在記憶體中儲存如下:

__________________________

低位址 |    12    |    34    |    56    |    78    | 高位址

------------------------------------------

對照著字元陣列各元素的值就是:

c.s[0] = 0x12

c.s[1] = 0x34

c.s[2] = 0x56

c.s[3] = 0x78

而對於小端模式,資料最小有效位儲存在最低位址,則 i 在記憶體中儲存如下:

__________________________

低位址 |    78    |    56    |    34    |    12    | 高位址

------------------------------------------

那麼字元陣列各元素值變成:

c.s[0] = 0x78

c.s[1] = 0x56

c.s[2] = 0x34

c.s[3] = 0x12

因此,如果c.s[0]的值為0x12,則說明機器為大端模式,否則為小端模式

大端小端的解釋

1 ibm motorola等晶元採用大字節序 big endian 多位元組資料的第乙個位元組 數字位址最低的 儲存的是最高位的值,例 32位機器 int i 0x12345687 假設 i 0x0012ff3c,則 0x0012ff3c 12 0x0012ff3d 34 0x0012ff3e 5...

小端模式和大端模式 大端模式和小端模式

0x123456在記憶體中的儲存方式 大端模式 低位址 小端模式 低位址 不難看出大端模式比較符合人的直觀認識 1.一開始是由於不同架構的cpu處理多個位元組資料的順序不一樣,比如x86的是小段模式,keil c51是大端模式。但是後來網際網路流行,tcp ip協議規定為大端模式,為了跨平台通訊,還...

大端模式 小端模式

大端模式,是指資料的低位 就是權值較小的後面那幾位 儲存在記憶體的高位址中,而資料的高位儲存在記憶體的低位址中,這樣的儲存模式有點兒類似於把資料當作字串順序處理 位址由小向大增加,而資料從高位往低位放 小端模式,是指資料的低位儲存在記憶體的低位址中,而資料的高位儲存在記憶體的高位址中,這種儲存模式將...