C++内置类型如何存放于计算机内存中
摘要:内置类型的机器实现、字/字节/比特、内存
一、概念
计算机以比特序列存储数据,每个比特非0即1,如:00011011011100010110010000111011...
二、计算机以块来处理内存
- 计算机以2的整数次幂个比特作为块来处理内存
- 字节:可寻址的最小内存块,对于大部分机器来说,一字节由8比特构成(即这个可寻址的内存块有8比特)
- 字:存储的基本单元,对于大部分机器来说,一字由4字节构成
三、寻(内存的)址
计算机将内存中的每个字节与一个数字关联起来,这个数字就是我们所谓的“地址”。
例如,我们在一个字节为8比特、字为32比特的机器上,我们能看到一个字的内存区域如下所示:
字节在内存的地址 | 字节(最小内存块) |
736424 | 0 0 1 1 1 0 1 1 |
736425 | 0 0 0 1 1 0 1 1 |
736426 | 0 1 1 1 0 0 0 1 |
736427 | 0 1 1 0 0 1 0 0 |
四、数据类型对于地址的重要性
我们能够使用某个地址来表示从这个地址开始的大小不同的比特串,例如,我们可能会说地址736424的那个字或者地址73647的那个字节。
为了赋予内存中某个地址明确的含义,必须首先知道存储在该地址的数据的类型。类型决定了数据所占的比特数以及该如何解释这些比特的内容。