在文章的開頭我首先要介紹一下大小端的概念:
大端模式:
是指資料的高位元組儲存在記憶體的低位址中,而資料的低位元組儲存在記憶體的高位址中,這樣的儲存模式有點兒類似於把資料當作字串順序處理:位址由小向大增加,而資料從高位往低位放;
小端模式:
是指資料的高位元組儲存在記憶體的高位址中,而資料的低位元組儲存在記憶體的低位址中,這種儲存模式將位址的高低和資料位權有效地結合起來,高位址部分權值高,低位址部分權值低,和我們的邏輯方法一致。
若將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...