【问题标题】:Multiplication of numbers that have sizes greater than a 64-bit register大小大于 64 位寄存器的数字的乘法
【发布时间】:2021-02-09 11:49:56
【问题描述】:

对于 64 位处理器,寄存器的大小为 64 位。所以一次可以相乘的最大位数是:32 位数乘以 32 位数。 这是真的还是有其他因素决定了相互相乘的位数?

【问题讨论】:

    标签: 64-bit multiplication


    【解决方案1】:

    不——你不能这么说。

    这取决于乘法算法是如何设计的。 想一想:

    x * y = x + x + x + ... + x        // y times
    

    您可以将每个乘法视为加法的总和。

    将一个数字添加到另一个数字不是寄存器的事情,因为您总是添加两个数字,保存结果和结转并继续接下来的两个数字,直到您将两个数字相加。

    通过这种方式,您可以将非常长的数字与非常小的寄存器相乘,但使用大内存来保存结果。

    【讨论】:

    • 因此,如果我使用 C 代码或 python 将 128 位数字相乘,并尝试查看需要多少时间,那就完全没问题了。
    • @TasneemGhunaim 肯定需要一些时间,但这是可能的。是的。
    • @TasneemGhunaim 如果此答案对您有帮助,请考虑对其进行投票。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2020-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多