大小端模式詳解及其測定

2021-08-15 15:51:34 字數 1209 閱讀 7595

大小端的寓言故事

有關大小端的爭論,最早來自於《格列夫遊記》裡乙個有趣的故事:

lilliput和blefuscu這兩個強國在過去的36個月中一直在苦戰。戰爭的原因:大家都知道,吃雞蛋的時候,原始的方法是打破雞蛋較大的一端,可以那時的皇帝的祖父由於小時侯吃雞蛋,按這種方法把手指弄破了,因此他的父親,就下令,命令所有的子民吃雞蛋的時候,必須先打破雞蛋較小的一端,違令者重罰。然後老百姓對此法令極為反感,期間發生了多次叛亂,其中乙個皇帝因此送命,另乙個丟了王位,產生叛亂的原因就是另乙個國家blefuscu的國王大臣煽動起來的,叛亂平息後,就逃到這個帝國避難。據估計,先後幾次有11000餘人情願死也不肯去打破雞蛋較小的端吃雞蛋。這個其實諷刺當時英國和法國之間持續的衝突。

什麼是大小端目前普遍採用的是單位元組編址方式,即對於每乙個位元組(8個位)編乙個位址編號,這種方式對於單位元組資料儲存沒有問題,但多位元組的資料儲存會帶來問題,比如:要將整形0x 87 65 43 21(佔四個位元組)儲存在其起始位址為100處,是將高位87儲存在高位址 103 處,還是將21儲存在 103 處,這是乙個問題。

這樣對於0x 87 65 43 21就有兩種儲存方式:

大小端的測定

下面給出兩種測試方法(c語言):

#include 

int main()

結果如下:

結果如下:

大小端模式詳解

1.問題引入 加3g實驗室的艱難之旅,遇到一道這樣的實驗室面試題 閱讀以下 計算結果。int main int ptr2 int long int a 1 printf x ptr2 return 0 輸出結果為 2000000 原題對 a強制轉換為 int,64位機指標長度為八個位元組,所以改為 ...

大小端模式

偶 注意 大小端的高低位資料是按位址來計算的。如0x1001,10是高位位元組,01是低位位元組。char s abcd a是高位位元組 所謂的大端模式,是指資料的低位 就是權值較小的後面那幾位 儲存在記憶體的高位址中,而資料的高位,儲存在記憶體的低位址中,這樣的儲存模式有點兒類似於把資料當作字串順...

大小端模式

所謂的大端模式,是指資料的低位 就是權值較小的後面那幾位 儲存在記憶體的高位址中,而資料的高位,儲存在記憶體的低位址中,這樣的儲存模式有點兒類似於把資料當作字串順序處理 位址由小向大增加,而資料從高位往低位放 所謂的小端模式,是指資料的低位儲存在記憶體的低位址中,而數 據的高位儲存在記憶體的高位址中...