大端(Big-endian)和小端(Little-endian)是一个很重要的概念。假如现有一32位int型数0x12345678,那么其MSB(Most Significant Byte,最高有效字节)为0x12,其LSB (Least Significant Byte,最低有效字节)为0x78,在CPU内存中有两种存放方式:(假设从地址0x4000开始存放)
大端是数的高字节存放到低内存
小端是数的低字节存放到低内存
#include<iostream>
using namespace std;
int checkEndian()
{
int i=0x12345678;
char *c=(char *)&i;
if(*c==0x12)
cout<<"big endian";
else
cout<<"little endian";
return 0;
}
int main()
{
checkEndian();
return 0;
}
参考: http://www.cnblogs.com/berry/articles/1588084.html