判斷機器大小端的兩種實現方法

2022-10-04 05:24:10 字數 751 閱讀 8659

第一種方法

思路:利用指標的強制型別轉換

複製** **如下:

#include

int main(void)

return 0;

}從輸出的結果可以看出,高位位址0xbfc1b1ff存的是資料的高位0x12,低位位址0xbfc1b1fc存的是資料的低位0x78。所以是小端。同時我們亦可以看到,對資料data取位址實際指向的是存放低位資料的空間。

第二種方法

思路:利用共用體所有資料都從同一位址開始儲存。

複製** **如下:

#include

int main(void)

int i;

&n程式設計客棧bsp;   union endian

&程式設計客棧nbsp;    int data;

&nbs   char ch;

}test;

test.data = 0x12345678;

if(test.ch == 0x78)

printf("little endian!\n");

}else

printf("big endian!\n");

for(i=0; i<4; i++)

printf("%#x ------- %p\n",*((char *)&test.data + i),(char *)&test.data + i);

return 0;

}本文標題: 判斷機器大小端的兩種實現方法

本文位址:

判斷機器大小端的兩種實現方法

大端模式 big endian 是指資料的低位 就是權值較小的後面那幾位 儲存在記憶體的高位址中,而資料的高位,儲存在記憶體的低位址 中,這樣的儲存模式有點兒類似於把資料當作字串順序處理 位址由小向大增加,而資料從高位往低位放 小端模式 little endian 是指資料的低位儲存在記憶體的低位址...

判斷機器大小端的兩種實現方法

大端模式 big endian 指資料的低位 就是權值較小的後面那幾位 儲存在記憶體的高位址中,而資料的高位,儲存在記憶體的低位址中,這樣的儲存模式有點兒類似於把資料當作字串順序處理 位址由小向大增加,而資料從高位往低位放 小端模式 little endian 指資料的低位儲存在記憶體的低位址中,而...

判斷機器大小端的兩種實現方法

大端模式 big endian 指資料的低位 就是權值較小的後面那幾位 儲存在記憶體的高位址中,而資料的高位,儲存在記憶體的低位址中,這樣的儲存模式有點兒類似於把資料當作字串順序處理 位址由小向大增加,而資料從高位往低位放 小端模式 little endian 指資料的低位儲存在記憶體的低位址中,而...