当前位置:编程学习 > C/C++ >>

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

首先不管大端法还是小端法存储,计算机在内存存放数据的顺序都是从低地址到高地址。
所不同的是首先取低字节的数据存放在低地址还是取高字节数据存放在低地址。
 
若首先取高字节的数据放在低地址,则是大端法;
若首先取低字节的数据存放在低地址,则是小端;
 
例如数据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
 
 
补充:软件开发 , C++ ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,