C語言 用C語言測試計算機大小端問題

2021-07-12 03:47:51 字數 793 閱讀 5009

首先,什麼是大端模式,什麼又是小端模式呢?

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

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

其次,我們要如何測試?

假定有乙個int型資料為1,它在記憶體中是這樣的:00 00 00 01.記憶體由低位址向高位址增長,那麼,如果是小端位元組序它是這樣的:01 00 00 00.如果是大端位元組序就是這樣的:00 00 00 01.於是我們考慮讓int發生截斷,只保留低位址的兩個位元組,如果為1,那當然就是小端模式,如果為0,就是大端模式。

**如下:

#includeint check_sys()

else

return 0; //大端

}int main()

還有一種方法,思路是一樣的,不過改為用共用體來實現,利用共用體的所有變數公用同一塊空間的特性,**如下:

#includeint check_sys()

u; u.i = 1;

if (u.k == 1) //小端

return 1;

if (u.k == 0) //大端

return 0;

}int main()

C語言程式判斷計算機的CPU大小端

如何判斷一台計算機的cpu是大端還是小字端對齊呢?那麼首先得了解何為大端,何為小端,明確一下概念。所謂大端模式,是指字資料的高位元組儲存在低位址中,而字資料的低位元組則存放在高位址中。big endian 和 little endian 位元組排序 位元組排序 含義 big endian 乙個wor...

C語言 計算機猜數字

include include include intmain else if a while a number printf 太好了,你用了 d次就猜到了答案 n count 程式說明 這裡的srand函式和time函式如下 srand函式 srand函式是隨機數發生器的初始化函式,原型 void...

用C語言實現大小端判斷

大端小端的概念 端模式 endian 的這個詞出自jonathan swift書寫的 格列佛遊記 這本書根據將雞蛋敲開的方法不同將所有的人分為兩類,從圓頭開始將雞蛋敲開的人被歸為big endian,從尖頭開始將雞蛋敲開的人被歸為littile endian。小人國的內戰就源於吃雞蛋時是究竟從大頭 ...