判斷機器的大小端

2021-09-12 19:12:54 字數 945 閱讀 6579

大小端模式:為什麼會有大小端模式之分呢?這是因為在計算機系統中,我們是以位元組為單位的,每個位址單元都對應著乙個位元組,乙個位元組為 8bit。但是在c語言中除了8bit的char之外,還有16bit的short型,32bit的long型(要看具體的編譯器),另外,對於位數大於 8位的處理器,例如16位或者32位的處理器,由於暫存器寬度大於乙個位元組,那麼必然存在著乙個如何將多個位元組安排的問題。因此就導致了大端儲存模式和小端儲存模式。

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

小端模式:是指資料的高位元組儲存在記憶體的高位址中,而資料的低位元組儲存在記憶體的低位址中,這種儲存模式將位址的高低和資料位權有效地結合起來,高位址部分權值高,低位址部分權值低。

怎麼判斷大小端:

方法一

將int型強轉為char型,如果輸出一是小端,否則是大端;

#include #include int main()

else

printf("大端\n");

system("pause");

return 0;

}

方法二

由於聯合中,個成員共享一段記憶體空間的性質來判斷機器的大小端;

#include #include void test()

u; u.a = 1;

if (u.b == 1)

printf("小端\n");

else

printf("大端\n");

}int main()

判斷機器大小端

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

判斷機器的大小端

一 概念 大端模式 big endian 是指資料的低位儲存在記憶體的低位址中,而數 據的高位儲存在記憶體的高位址中。為什麼會有大小端模式之分呢?這是因為在計算機系統中,我們是以位元組為單位的,每個位址單元都對應著乙個位元組,乙個位元組為8bit。但是在c語言中除了8bit的char之外,還有16b...

判斷機器的大小端

大端 儲存 模式,是指資料的低位儲存在記憶體的高位址中,而資料的高位,儲存在記憶體的低位址中 小端 儲存 模式,是指資料的低位儲存在記憶體的低位址中,而資料的高位,儲存在記憶體的高位址中。這是因為在計算機系統中,我們是以位元組為單位的,每個位址單元都對應著 乙個位元組,乙個位元組為8bit。但是在c...