C語言的判斷機器的大小端

每天和鍵盤在一起發表於2023-05-18

大小端介紹

什麼大端小端:

**大端(儲存)模式,是指資料的低位儲存在記憶體的高地址中,而資料的高位,儲存在記憶體的低地址中;

小端(儲存)模式,是指資料的低位儲存在記憶體的低地址中,而資料的高位,,儲存在記憶體的高地址中。**

1.

2.

為什麼有大端和小端:

為什麼會有大小端模式之分呢?

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

1.

如何用程式碼來判斷機器的大小端

程式碼(1)

int check_sys()

{

int a = 1;

return*(char*)&a;

}

int main()

{

int ret = check_sys();

if (1 == ret)

printf("小端\n");

else

printf("大端\n");

system("pause");

return 0;


}


程式碼(2)

利用聯合的性質進行判斷,聯合所定義的都是共同體

char check_sys()

{

union check

{

int i;

char ch;

}c;

c.i = 1;

return c.ch;

}


int main()

{

char ret = check_sys();

if (ret == 1)

printf("小端\n");

else

printf("大端\n");

system("pause");

return 0;

}



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70030112/viewspace-2953156/,如需轉載,請註明出處,否則將追究法律責任。

相關文章