little endian:低地址存放最低有效字节 | intel x86系列CPU .net
big endian:低地址存放最高有效字节 | Motorala PowerPC系列CPU java虚拟机 网络传输
例:
#include "stdafx.h"
#include "iostream"
using namespace std;
int main(int argc, char* argv[])
{
typedef union u{
int integer;
char character;
}u;
u uu;
uu.integer=1;
if(uu.character==1)
cout<<"little endian"<<endl;
else
cout<<"big endian"<<endl;
return 0;
}
一个很牛的检测当前平台是little endian还是big endian 的小程序。
声明一个union,并指定其中的int值为1,在内存中,数据存储如下。
little endian:
0x0012ff7c
01 00 00 00
则char值显然应该为1;
big endian:
0x0012ff7c
00 00 00 01
char值为0。