在計算機系統中,咱們是以字節爲單位的,每一個地址單元都對應着一個字節,一個字節爲8bit。可是在C語言中除了8bit的char以外,還有16bit的short型,32bit的long型(要看具體的編譯器)。另外,對於位數大於8位的處理器,例如16位或者32位的處理器,因爲寄存器寬度大於一個字節,那麼必然存在着一個若是將多個字節安排的問題。所以就致使了大端存儲模式和小端存儲模式。windows
大端模式(big endian):數據高位存儲在內存低地址,低位對應高地址 ;數組
小端模式(little endian):數據高位存儲在內存高地址,低位對應低地址 ;網絡
在操做系統中,x86和通常的OS(如windows,FreeBSD,Linux)使用的是小端模式。但好比Mac OS是大端模式。ARM芯片默認採用小端,但能夠切換爲大端;另外,對於大小端的處理也和編譯器的實現有關,在C語言中,默認是小端(但在一些對於單片機的實現中倒是基於大端,好比Keil 51C),Java是平臺無關的,默認是大端。在網絡上傳輸數據廣泛採用的都是大端。測試