C語言 大小端的判斷

2021-07-02 15:20:55 字數 1207 閱讀 6832

在文章的開頭我首先要介紹一下大小端的概念:

大端模式:

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

小端模式:

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

若將00000001放入計算機中就有兩種方法:

—————————————————————>                    小端

低位址            01       00        00        00           高位址

—————————————————————>                   大端

高位址            00       00        00        01          低位址

但是我們應該怎樣判斷當前計算機的儲存模式呢??

首先用指標法:

#includeint main()

else

return 0;

}

在介紹第二種解法前,我們首先簡單介紹一下聯合體的概念: 在

電腦科學

中,聯合體(英語:union)一種具有多個型別或格式的值,或者把它定義為一種由具有這樣的值的

變數形成的

資料結構

。一些程式語言

可以支援被稱為「聯合體」的特殊的

資料型別

,來表示上述的變數。換句話說,乙個聯合體的定義(defenition)會指定一些允許的可以儲存在例項內的原始資料型別(例如整型,浮點)。和記錄(record)(或結構,structure)那些可以被定義去包含乙個浮點數或整型不同的是,在乙個聯合體任何時候只有乙個值。

聯合體法:

#includeunion un

un;int main()

else

return 0;

}

兩個的執行結果都是:

C語言判斷大小端

思路 明確大小端 如圖示 程式思路 1 思考資料的儲存方式以及位址排列,int型 在32 位作業系統下 占有 4位元組,char 型 占有1字元,因此可以利用char 型指標判斷 int 型位址與資料 2 如 若有整形 int b 0x 77 ff 10 01,則我們知 0x 01 0x 10,0x...

C語言判斷大小端模式

1.大端模式,是指資料的低位儲存在記憶體的高位址中,而資料的高位,儲存在記憶體的低位址中 小端模式相反 2.為什麼有大小端之分?因為在計算機系統中,儲存是以位元組為單位的,每個位址單元都對應著乙個位元組,乙個位元組 8bit。在c語言中除了8bit的char之外,還有16bit的short型,32b...

c語言 怎麼判斷機器的大小端

大端 儲存 模式,是指資料的低位儲存在記憶體的高位址中,而資料的高位,儲存在記憶體的低位址中 小端 儲存 模式,是指資料的低位儲存在記憶體的低位址中,而資料的高位,儲存在記憶體的高位址中 圖中的變數位址是倒著存的,所以可以判斷是小端儲存 方法一 include include intcheck sy...