大端序、小端序union分析

来源:互联网 发布:淘宝售前售后客服 编辑:程序博客网 时间:2024/06/13 23:48

对于多字节基本数据类型(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这类数据没有测试,但应该也是可以当作整体来分析其字节存储形式。

0 0
原创粉丝点击