困扰我多年的问题,至今我也靠自己说不明白。。。
首先位是计算机基本存储单元,说白了就是,1位就能存放1个二进制数。
但是32位里的位,表示的是寻址能力。寻址位数。
内存划分
为了对内存管理方便,使得内存被划分为许多区块。
一个块是1字节,因此,字节是内存的基本单元。
理解为:8位1字节,8个人被分到一组,然后以组为单位管理内存。
寻址
我把一大堆人分好组之后,我要去找一个特定的组,就是寻址。
我们给每个组,就是每个字节、每个内存来一个编号,也就是内存地址,也叫地址。
有了地址之后,当我需要取到某个内存的数据时,就可以把该内存对应的地址告诉CPU,CPU就可以根据该地址准确的找到对应的内存,取出数据了。而CPU通过地址找到对应内存的过程,就是寻址。
寻址:CPU根据地址,找到对应的内存,取出数据。
32位CPU,表示,该CPU能够支持的地址长度为32位。
理解:你学号是5位数,你最多能管理十万的学生,那么你如果是32位,你能管理2^32这么多学生,也就是说,32位CPU可以取到2^32这么多内存。单位是字节,2的32次方字节这么多内存空间。
因此,CPU位数越高,寻址能力就越强。
操作系统也有寻址能力一说。
当操作系统需要操作一块内存时,会将内存地址传给CPU。
CPU的位数必须不能小于操作系统的位数要求。
32位CPU寻址空间是4G,而64位操作系统就是4G*4G这么多了。
有种4位数和8位数财产的区别。
因此32位和64位区别就是:最大可以访问的内存不同。
寄存器是CPU内部的,存储器是硬盘。