C語言基礎 大小端檢測方法

2021-08-20 10:12:01 字數 866 閱讀 3228

首先,介紹一下大小端:

資料在儲存器中儲存時有大小端之分,大端表示資料的高位元組在低位址,低位元組在高位址;小端表示資料的高位元組在高位址,低位元組在低位址(當乙個完整的資料超過乙個位元組時才需要考慮資料的大小端)。

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的處理器,由於暫存器寬度大於乙個位元組,要...