如果机器有 64 位字,则将两个 129 字数相乘需要多少位?

Posted

技术标签:

【中文标题】如果机器有 64 位字,则将两个 129 字数相乘需要多少位?【英文标题】:How many bits will be needed to multiply two 129 word numbers if the machine has 64 bit words? 【发布时间】:2015-10-09 02:32:34 【问题描述】:

所以,我在学习并遇到了这个算法问题:

因此,机器使用 64 位来表示字。我们可以以一定的复杂度将两个 n 字数相乘。如果n是129,那是多少位?

我对如何做到这一点有点困惑。如果一个词是 64 位,那么我认为 129 * 64 会是答案,但这似乎是一个非常高的位数。谁能解释一下如何处理这个程序?

【问题讨论】:

一条指令的位宽是多少? 两个 129 字/位/字节/位数字相乘的结果可以达到 258 个字/位/字节/位宽 【参考方案1】:

将 N 位数乘以 M 位数得到 N+M 位数。因此,将多个 129 个字(8256 位)乘以另一个会产生 16512 位或 258 个字的结果。是的,这是很多位,但例如,这种乘法出现在密码学中。

【讨论】:

以上是关于如果机器有 64 位字,则将两个 129 字数相乘需要多少位?的主要内容,如果未能解决你的问题,请参考以下文章

c语言 判断两数相乘是不是溢出

假设某个元素与 R 中的 CSV 文件的文件名相同,则将数据框中的某个元素相乘

将两个32位数相乘并将64位结果打印为十进制NASM程序集

使用 CUDA 进行大整数加法

AJAX - 将返回的八位字节流转换为类型化数组 (Float64Array)

2.x 设备中的存储库冲突