首先,介紹一下大小端:
資料在儲存器中儲存時有大小端之分,大端表示資料的高位元組在低位址,低位元組在高位址;小端表示資料的高位元組在高位址,低位元組在低位址(當乙個完整的資料超過乙個位元組時才需要考慮資料的大小端)。
big-endian: 低位址存放高位,如下:
高位址
---------------
buf[3] (0x78) -- 低位
buf[2] (0x56)
buf[1] (0x34)
buf[0] (0x12) -- 高位
---------------
低位址little-endian: 低位址存放低位,如下:
高位址
---------------
buf[3] (0x12) -- 高位
buf[2] (0x34)
buf[1] (0x56)
buf[0] (0x78) -- 低位
下面用兩個方法說明如何測試大小端,**如下:
(intel處理器是小端的)
typedef union _teststructa_b;
unsigned short int ab;
}teststruct;
//方法一
int func1(void)
else if(test.a_b.a == 0x34)
else
return 0;
}//方法二
int func2(void)
else if(b == 0x34)
else
return 0;
} int main(int argc, char *argv)
C語言 檢測大小端儲存
include int sys check else int main else return 0 此外,可以使用聯合體 共用體 union 封裝另乙個共同功能的函式 main函式預設 int sys check un un.i 1 if un.c 1 else 上面是以 1 為例判斷,以下是詳細對...
C語言複習 大小端 求大小端
所謂的大端模式,是指資料的高位,儲存在記憶體的低位址中,而資料的低位,儲存在記憶體的高位址中,這樣的儲存模式有點兒類似於把資料當作字串順序處理 位址由小向大增加,而資料從高位往低位放 例子 0000430 e684 6c4e 0100 1800 53ef 0100 0100 0000 0000440...
系統大小端檢測
大小端的引入 在計算機系統中,我們是以位元組為單位的,每個位址單元都對應著乙個位元組,乙個位元組為8bit。但是在c語言中除了8bit的char之外,還有16bit的short型別,32bit的int型別,另外位數大於8位的處理器,例如16位或者32位bit的處理器,由於暫存器寬度大於乙個位元組,要...