【发布时间】:2021-02-09 11:49:56
【问题描述】:
对于 64 位处理器,寄存器的大小为 64 位。所以一次可以相乘的最大位数是:32 位数乘以 32 位数。 这是真的还是有其他因素决定了相互相乘的位数?
【问题讨论】:
标签: 64-bit multiplication
对于 64 位处理器,寄存器的大小为 64 位。所以一次可以相乘的最大位数是:32 位数乘以 32 位数。 这是真的还是有其他因素决定了相互相乘的位数?
【问题讨论】:
标签: 64-bit multiplication
不——你不能这么说。
这取决于乘法算法是如何设计的。 想一想:
x * y = x + x + x + ... + x // y times
您可以将每个乘法视为加法的总和。
将一个数字添加到另一个数字不是寄存器的事情,因为您总是添加两个数字,保存结果和结转并继续接下来的两个数字,直到您将两个数字相加。
通过这种方式,您可以将非常长的数字与非常小的寄存器相乘,但使用大内存来保存结果。
【讨论】: