存儲模式分爲大端模式和小端模式,在X86系統中通常採用小端模式,而在網絡傳輸中的一些協議採用的是大端模式。
大端模式(Big_endian):字數據的高字節存儲在低地址中,而數據的低字節存儲在高地址中。
小端模式(Little_endian):字數據的高字節存儲在高地址中,而數據的低字節存儲在低地址中。
程序驗證:
#include
/*
*功能:測試機器的存儲模式
*一個十六進制的整形0x11223344 從低地址到高地址一次輸出每個字節的數據
*/
int main(int argc,char* argv[])
{
int key = 0x11223344;
char* address;
int i = 0;
address = (char*)&key;
//輸出爲44 33 22 11是小端模式
for(;i<4;++i)
{
printf("%x ",*address++);
}
printf("\n");
return 0;
}
#include
int main(int argc,char* argv[])
{
typedef union
{
int key;
char c;
}Check;
Check c;
c.key = 0x1;
//輸出爲1
printf("%d\n",c.c);
return 0;
}