如何測試機器的大小端

2021-08-18 20:58:39 字數 1218 閱讀 8608

一、大小端

1、為啥會有大小端

在計算機系統中以位元組為單位,每個位址單位都有乙個位元組(乙個位元組8個bit位)。在c語言中,有char(8bit)、short(16bit)、long(32bit,具體看編譯器)。對於位數大於8的處理器,不如16位或者32位的處理器,由於暫存器寬度大於乙個位元組,那麼必然存在乙個如何將多個位元組安排的問題。so就有了大端儲存模式和小端儲存模式

2、大小端的概念區分

(1)大端(big_endian):資料的高位元組儲存在記憶體的低位址處,資料的低位元組儲存在記憶體的高位址。這個儲存模式類似將資料當做字串處理:位址由小到大增加,資料由高到低存放。

(2)小端(little_endian):資料的高位元組儲存在記憶體的高位址處,資料的低位元組儲存在記憶體的低位址。這樣子的儲存模式和我們邏輯思維方式一樣,將位址的高低位和資料權位有效對應起來,高位址對應權值高的,低位址對應權值低的。

二、**測試大小端

(1)聯合體union:(because聯合體(union)的存放順序是所有成員都是從低位址開始存放,這樣就可以區分出是大端or小端)

int checksystem()

c; // 將1放到i的低位去

c.i = 1;

//倘若ch的最低位是1,則證明機器為小端儲存模式;否則反之

return (c.ch == 1);

}

(2)指標強轉解引用:

int checksystem()

return

0;}

完整**:

#include 

//方法一:聯合體union

int checksystem()

c; // 將1放到i的低位去

c.i = 1;

//倘若ch的最低位是1,則證明機器為小端儲存模式;否則反之

return (c.ch == 1);

}// 方法二:強轉指標並且解引用

int checksystem()

return0;}

int main()

經過測試,小可愛我的機器是小端儲存模式哦,你的嘞???

如何測試機器的大小端儲存

大端模式,是指資料的高位元組儲存在記憶體的低位址中,而資料的低位元組儲存在記憶體的高位址中,這樣的儲存模式有點兒類似於把資料當作字串順序處理 位址由小向大增加,而資料從高位往低位放 這和我們的閱讀習慣一致。小端模式,是指資料的高位元組儲存在記憶體的高位址中,而資料的低位元組儲存在記憶體的低位址中,這...

測試機器大小端儲存的方法

小端模式 little endian 是指資料的高位元組儲存在記憶體的高位址中,而資料的低位元組儲存在記憶體的低位址中,這種儲存模式將位址的高低和資料位權有效地結合起來,高位址部分權值高,低位址部分權值低,和我們的邏輯方法一致。大端模式 big endian 是指資料的高位元組,儲存在記憶體的低位址...

機器的大小端

用c語言寫程式時需要知道是大端模式還是小端模式。所謂的大端模式 be big endian 是指資料的低位儲存在記憶體的高位址中,而資料的高位,儲存在記憶體的低位址中 低對高,高對高 最直觀的位元組序,因為不要考慮對應關係 只需要把記憶體位址從左到右按照由低到高的順序寫出,把值按照通常的高位到低位的...