您的位置:首页 > 其它

C学习笔记2-int类型数据在内存中的存储形式

2014-08-22 02:11 239 查看
我们都知道现在一般的int类型在VC中是占4个字节的,如果想亲自看到具体占多少个当然可以用sizeof(int)来查看,然而内存地址是以一个字节Byte作为单位的,也就是说一个int类型数据占据了4个内存单元,即跨越了4个地址空间。那么int类型数据在内存中是怎么存放的呢,我们一探究竟。
首先我们可以定义一个int类型变量,如:

                                                                                  int a=100000;

这个值够大,用十六进制表示就是000186A0,那么我们用看看a在内存中的情况,如图;



其中左边是每一行的第一个内存单元的地址,我们用&a操作得知a的地址为0018ff30,那么a在内存中的数据就是A0860100,现在与上面的a对比一下,可以发现,其实内存中是以低地址存数据低位的方式存储数据的,

                                                                           00   01  86  A0    ---    A0  86  01  00

                                                                           高位             低位         低地址          高地址

                                                                              |                      |                 |                 |           

                                                                             |                                                          |

虽然只给出了int类型的例子,其实其他类型的数据也类似。这种排列方式就称之为小端(或者小尾),与之相对应的还有大端或者大尾。

a) Little-Endian就是低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。

b) Big-Endian就是高位字节排放在内存的低地址端,低位字节排放在内存的高地址端    
      

当然还有不那么常用的Middle-Endian方式。 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: