1. CPU位数的含义
- 寄存器位宽(容量)
32位CPU的寄存器最大能放2^32的数值;
64位CPU的寄存器最大能放2^64的数值;
- 总线
总线是CPU和内存之间进行通信的,可以分为数据总线、控制总线、地址总线。CPU通过控制总线向内存发送信号,通过地址总线找到数据的地址,通过数据总线来传输数据。
总线也可以理解为有一个宽度,即传输数据的范围。
32位CPU总线宽度一般是32位,也就是2^32(4G)。
64位CPU总线宽度按理来说是64位,但实际上是48位,也就是2^48(256T)。
2. 系统和软件的含义
32位软件最大寻址范围位2^32(4G),64位软件最大寻址范围为2^48(256T);
所以32位系统一般不能按64位软件,而64位系统向下兼容。
3. 程序数值int32和int64的含义
Int32也就是用4个字节,32位的内存去存数据;int64也就是用8个字节,64位去存数据。
那么问题来了,32位的CPU能进行int64位的数值计算吗?
能。只是性能会慢一些。
将64位分成前后两部分,分别计算,再拼接到一块。