X位计算机如何使用2X位数?

Rya*_*ies 6 computer-science

这不是我第一次遇到这个问题,但今天我在玩SNES游戏的时候又想起了这个游戏,想要找到比我更了解它的人的回答.

以超级任天堂为例.这是一个16位系统.使用16位,最多可以计数65536或2 ^ 16.那么机器如何应对我,例如,得分大于65536?

小智 5

实际上它有点复杂,但简单的解释是 16 位处理器可以在单个操作中对 16 位数字进行操作,而要处理更大的数字,您需要分解。例如,要添加两个 32 位数字,您可以在一次操作中添加最低有效字,然后添加最高有效字,然后添加任何进位。

显然这要慢得多(3 条指令而不是 1 条指令),但如果需要,几乎可以完成任何操作。这是具有较大字的处理器可以更快的原因;他们可以用一条指令而不是几条指令来完成更大的操作。从程序员的角度来看,编译器通常会处理这个问题,除非您正在编写程序集,否则您永远不会手工完成。

但实际上,许多处理器都有专门的硬件来进行数学运算,因此调用 32 位或 64 位处理器实际上更多地与内存寻址和寄存器的大小有关。

  • 它几乎总是两个指令,而不是三个。大多数处理器系列都有一个特殊的指令来添加两个数字和进位位,事实证明添加进位位的硬件成本是最低的。这是有道理的,如果你想象数字已经被分解成带有传播进位位的更小的块——谁会注意到一个额外的进位位进入 LSB,它通常没有。 (2认同)