这篇博客写的不错:
最近笔试上也碰到了这方面的问题。需要注意两点:
(1)一般操作系统都是小端,而通讯协议是大端的。
(2)写一段程序判断大小端:
bool isBig_Endian()
{
short test = 0x1234;
if( *((char *)&test) == 0x12)
return true;
else
return false;
}
首先是取test变量的地址,然后用(char *)将这个地址转换成char*类型的地址,即相当于取short变量的地址的一个字节。最后用*解引用取出这个字节的内容进行判断,如果是0x12则证明示大端表示法,反之则为小端表示法。我跑了下这个程序,最后得到的结果是小端。