一個16位的整數,由兩個字節組成。內存中存儲這個兩個字節有兩種方法:一種是將低位字節存儲在起始地址,這種方式稱為小端(little-endian)字節序;另外一種是將高位字節存儲在起始地址,這種方式稱為大端(big-endian)字節序。

在網絡編程、系統設計、匯編中可能會涉及到大端小端問題。
下面一個簡單C程序可以判斷出你所使用的機器是大端還是小端
#include<stdio.h>
int main(int argc, char const *argv[])
{
union //采用union的以不同方式表示數據
{
short s;
char c[sizeof(short)];
}un;
un.s=0x0102;
printf("char is %lu byte\n ",sizeof(char) );
if(sizeof(short)==2)
{
if((un.c[0]==1) && (un.c[1]==2) )
{
printf("big-endian\n" );
}
else if((un.c[0]==2) && (un.c[1]==1) )
{
printf("little-endian\n");
}
else
{
printf("unknown\n");
}
}
else
{
printf("sizeof(short)== %lu\n",sizeof(short));
}
return 0;
}
參考:Unix網絡編程