您的位置:首页 > 编程语言 > C语言/C++

c\c++ 复习基础要点07---内存存储 大端模式、小端模式

2013-09-29 00:24 351 查看
首先不管大端法还是小端法存储,计算机在内存存放数据的顺序都是从低地址到高地址。

所不同的是首先取低字节的数据存放在低地址还是取高字节数据存放在低地址。

若首先取高字节的数据放在低地址,则是大端法;

若首先取低字节的数据存放在低地址,则是小端;

例如数据0x1234567 (左边是高字节,右边是低字节)

大端法存放:

内存地址依次为: 0x0001 0x0002 0x0003 0x0004

对应的数据存放依次为: 0x01 0x23 0x45 0x67



小端法存放:

内存地址依次为: 0x0001 0x0002 0x0003 0x0004

对应的数据存放依次为:0x67 0x45 0x23 0x01



union型数据所占的空间等于其最大的成员所占的空间。对union型的成员的存取都是

相对于该联合体基地址的偏移量为 0处开始,也就是联合体的访问不论对哪个变量的存取都

是从 union的首地址位置开始,因此,大小端模式存储将会直接影响union内成员的值。

例子:

#include<stdio.h>

union check

{

int i;

char ch;

};

void main()

{

check c;

c.i=1;

printf(“%d\n”,c.ch);

}

如果存储为大端模式,则输出为0,如果为小端模式,则输出为1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: