注册 登录
编程论坛 C++教室

这个是什么原理呢?

forclwy 发布于 2009-08-24 15:39, 633 次点击
试编写函数判断计算机的字节存储顺序是开序(little endian)还是降序(bigendian)
bool IsBigendian()
{
unsigned short usData = 0x1122;
unsigned char *pucData = (unsigned char*)&usData;
return (*pucData == 0x22);
}
1 回复
#2
pangding2009-08-25 11:27
回复 楼主 forclwy
unsigned short 是一个占两个字节的类型。
比如0x1122这个值。
如果是little endian,它在内在里是 0x22 0x11 这么储存的。(它把低位的值存储在低的地址上)
相反big endian,是这样的:0x11 0x22。
剩下的应该就好懂了,取这个地址上第一个字节看看是不是 0x22 就行了。
1