C語言複習 大小端

2021-09-29 02:10:34 字數 648 閱讀 4061

這篇部落格是對於我個人的知識的複習,當然如果有某位大佬能夠指出這裡面有哪些概念含糊不清或者難懂,麻煩指出來感激不盡。

關於大端小端的概念

目前有兩種方法判斷機器的大小端

int變數的位址強轉為char*的指標,最後用指標取值得到的就是低位址的值

#includeint main()

利用聯合體的特性,各成員共享同一段記憶體空間,乙個聯合體的長度為最長成員長度。

#includeunion mm

test;

int main()

上面的基本在大一時的老師就會講了,我們的重點不是上面,而是為什麼要有大小端之分?將所有的高位位元組存放在高位址,低位位元組放在低位址就行了?

因為在計算機中是以位元組為基本單位的,除了1位元組的char型別,4位元組的int,8位元組(某些系統)的long型別,而且對於大於8位的暫存器,例如32位或者64位,就產生了如何將多個位元組按順序進行安排?也就有了大端儲存模式和小端儲存模式。

常見的x86結構是小端模式,arm,dsp也是小端模式,某些arm可以自己選擇硬體的大小端模式。

C語言複習 大小端 求大小端

所謂的大端模式,是指資料的高位,儲存在記憶體的低位址中,而資料的低位,儲存在記憶體的高位址中,這樣的儲存模式有點兒類似於把資料當作字串順序處理 位址由小向大增加,而資料從高位往低位放 例子 0000430 e684 6c4e 0100 1800 53ef 0100 0100 0000 0000440...

C語言判斷大小端

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

C語言大小端問題

一 概念 大端儲存 乙個數的低位位元組序的內容存放到高位址處,高位位元組序的內容存放在低位址處。小端儲存 乙個數的低位位元組序的內容存放到低位址處,高位位元組序的內容存放在高位址處。舉個例子 include include include intmain printf s n isbigendian...