现在的位置: 首页 > 综合 > 正文

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

2018年02月21日 ⁄ 综合 ⁄ 共 643字 ⁄ 字号 评论关闭

首先不管大端法还是小端法存储,计算机在内存存放数据的顺序都是从低地址到高地址。

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

 

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

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

 

例如数据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

 

 

抱歉!评论已关闭.