所謂小端儲存就是說資料是從記憶體的低位址開始儲存的!比如:定義乙個
int w=0xff
那麼這個值表示成32位的就是0x 00 00 00 ff:要是按照小端儲存的話則就是說是這樣的:
記憶體位址 資料
0x0012ff60 ff .
0x0012ff61 00 .
0x0012ff62 00 .
0x0012ff63 00 .
要是大端的話則儲存就是這樣得了:
0x0012ff60 00 .
0x0012ff61 00 .
0x0012ff62 00 .
0x0012ff63 ff .
所以要是你要判斷你當前的機器是否是大端還是小端可以這樣做:
#define is_big_endian(test_int) ((*((char *)&test_int))==0) //判斷是否是大端還是小端,=1是大端;=0是小端:
&test_int //w在記憶體中的起始位址
0x0012ff60
(char *)&test_int //將位址強制轉換成char*
0x0012ff60
*((char *)&test_int) //該位址
0x0012ff60 上的值
(*((char *)&test_int)) //該位址
0x0012ff60 上的值
最後:一般pc都是小端儲存。
大端儲存和小端儲存
簡述 計算機系統中,我們是以位元組為單位的,每個位址單元都對應著乙個位元組,乙個位元組為 8bit。但是在c語言中除了8bit的char之外,還有16bit的short型,32bit的long型另外,對於位數大於 8位的處理器,例如16位或者32位的處理器,由於暫存器寬度大於乙個位元組,那麼必然存在...
大端和小端儲存區別
計算機中,我們知道是以位元組為單位的,乙個位元組8位,每個位址對應乙個位元組,但是對於大於乙個位元組的資料型別,比如short 2 byte int 4 byte 另外對於 16位,32位的處理器,由於乙個暫存器的寬度大於8,必然存在如何將多個位元組安排問題,因此就有了大端 big endian 和...
大端儲存和小端儲存 計算機儲存的大端法和小端法
01引言 在計算機記憶體中,通常是以位元組 byte 也就是 8 個位 bit 為基本儲存單元 也有以 16 位為基本儲存單元的 對於跨越多個位元組的資料型別 比如 int 長 4 個位元組 如何在記憶體中對這些位元組進行排序有兩種常見的方法 大端法 big endian 和小端法 little e...