目录

电脑里的 32 位和 64 位到底是什么意思?

电脑装系统时常看到“32 位”和“64 位”两个选项。

这两个数字到底指什么,很多人其实说不清。

简单讲,它说的是 CPU 一次能处理的数据宽度,也就是字长(word size)。

32 位和 64 位,到底指的是什么

先纠正一个流传很广的说法。

不少资料把 32/64 位说成“数据总线宽度”,这个说法不严谨。

更准确的描述是 CPU 的字长,主要体现在通用寄存器的宽度,以及算术逻辑单元(ALU)一次能处理的位数上。

举个反例就清楚了。

早年的 Intel Pentium 是 32 位 CPU,可它的数据总线宽度是 64 位的。

可见位数和数据总线压根不是一回事。

说回字长。

32 位 CPU 的通用寄存器是 32 位宽,一次处理 32 位(4 字节)数据。

64 位 CPU 的寄存器是 64 位宽,一次处理 64 位(8 字节)数据。

为什么 32 位系统最多只能用 4GB 内存

这是 32 位最被人记住的限制。

但根源不是“时钟周期能处理多少内存”,这种说法本身就不通。

真正的原因在内存地址的位宽。

32 位系统用 32 位来表示一个内存地址,能表示的地址总数是 2 的 32 次方,等于 4294967296 个,刚好就是 4GB。

地址编号用完了,再多的内存条也访问不到。

所以 32 位 Windows 实际可用内存往往还不到 4GB。

因为一部分地址得让给显卡、主板这些硬件占着用。

64 位真的能用 16EB 内存吗

理论上能,实际差得远。

64 位地址空间是 2 的 64 次方字节,约等于 16EB(艾字节),这数字大得有点离谱。

但现实里的 CPU 不会真去实现完整的 64 位物理地址。

以 x86-64 架构为例,早期处理器只做了 48 位物理地址,对应 256TB;后来扩展到 52 位,对应 4PB。

对家用电脑来说,这上限怎么也用不完。

32 位和 64 位软件能互相运行吗

结论先放这儿。

32 位程序能在 64 位系统上跑,64 位程序没法在 32 位系统上跑。

64 位系统一般自带一个兼容层(Windows 上叫 WoW64),专门用来伺候 32 位程序。

反过来不行。

32 位系统的寄存器和地址空间,根本装不下 64 位指令要用的那一套东西。

这也是为啥现在的新软件大多直接发 64 位版本。

常见问题

Q1. 32 位和 64 位指的是 CPU 还是操作系统?

两者都有。

硬件层面指 CPU 的字长,软件层面指操作系统按多少位编译。

64 位系统需要 64 位 CPU 才能装,而 32 位系统在 64 位 CPU 上也能跑。

Q2. 我的电脑该装 32 位还是 64 位系统?

内存大于 4GB 就装 64 位,否则内存用不满。

现在的电脑基本都该选 64 位。

Q3. 给 32 位系统加更多内存有用吗?

基本没用。

超过 4GB 的部分系统识别不了,PAE 这类特殊技术虽然能绕一下,但桌面版的限制依旧卡在那。

Q4. 64 位系统一定比 32 位快吗?

不一定。

处理大数据、大内存时位数高有优势,可日常轻量任务差别不明显,指针变大反而会多吃一点内存。

总结

一句话,32/64 位说的是 CPU 字长,连带影响内存寻址范围和软件兼容性。

记牢“32 位最多认 4GB 内存”这一条,日常装系统直接选 64 位,基本不会错。

关于位数还有哪儿没绕明白,或者碰到过 32 位系统认不全内存的情况,欢迎在评论区聊聊~~~

版权声明

未经授权,禁止转载本文章。
如需转载请保留原文链接并注明出处。即视为默认获得授权。
未保留原文链接未注明出处或删除链接将视为侵权,必追究法律责任!

本文原文链接: https://fiveyoboy.com/articles/what-is-32-bit-and-64-bit/

备用原文链接: https://blog.fiveyoboy.com/articles/what-is-32-bit-and-64-bit/