我们从地址总线开始讲,这也是我思考这个问题的开端。
地址总线是用来沟通CPU与内存的一种电脑总线。而总线的位宽指的是总线能同时传送的二进制数据的位数,或数据总线的位数,即32位、64位等总线宽度的概念。一般32位的比较常见,我们来讨论32位的总线。
32位的总线,也就是说能同时传送32位二进制数。那么32位二进制数有多少种可能呢?对了,就是2^32种可能。而每一种可能就是一个地址,而一个地址多长呢?对了,正好就是4个字节,32位。(我不知道这个“巧合”更深层次的意思,如果你知道的话请告诉我~)
也就是说有2^32个地址,每个地址对应内存一个单元。而一个单元是一个字节。所以,我发现了对我来说的一个重大秘密——为什么32位的最大内存是4G?(准确说是最大寻址空间)
就是最大寻址空间里面有2^32个单元,每个单元1字节。所以最大寻址空间是2^32K,也就是4G。
在想上面问题的时候对于一些原先浑浑噩噩的知识弄懂了一点。
int型变量的范围到底怎么确定的?
一个int型变量占4个字节,一个字节8位。所以一个int型是一个32位的二进制数,范围宽2^32。考虑补码等等,范围在(-2^16,2^16-1)