這篇博客寫的不錯:
最近筆試上也碰到了這方面的問題。需要注意兩點:
(1)一般操作系統都是小端,而通訊協議是大端的。
(2)寫一段程序判斷大小端:
bool isBig_Endian()
{
short test = 0x1234;
if( *((char *)&test) == 0x12)
return true;
else
return false;
}
首先是取test變量的地址,然後用(char *)將這個地址轉換成char*類型的地址,即相當於取short變量的地址的一個字節。最後用*解引用取出這個字節的內容進行判斷,如果是0x12則證明示大端表示法,反之則爲小端表示法。我跑了下這個程序,最後得到的結果是小端。