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

来源:互联网 发布:水利水电计价软件 编辑:程序博客网 时间:2024/06/05 16:34

  • 我们都知道现在一般的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方式。 

0 0
原创粉丝点击