对于多字节基本数据类型(short、int、long、float、double):
大端序:数据低位保存在内存的高地址,数据高位保存在内存的低地址;
小端序:数据低位保存在内存的低地址,数据高位保存在内存的高地址;
在x86 32位环境下,一种更直观的观察方法,定义一个union数据:
union data {
unsigned int i[2];
unsigned char c[8];
}
测试代码:
int main()
{
union data d;
d.i[0] = 0x11223344;
d.i[1] = 0x55667788;
int i;
for(i=0; i<8; ++i)
printf("%x", d.c[i]);
return 0;
}
输入如下:
4433221188776655
可以看出x86采用的是小端序。
推测出大端序的输出应该如下:
1122334455667788
PS:long long和long double这类数据没有测试,但应该也是可以当作整体来分析其字节存储形式。