Algorithm 如果硬件已经在做乘法运算,为什么还需要乘法运算?
我正在学习快速整数乘法的算法,我想知道,既然计算机已经在CPU中内置了专用的硬件来执行乘法,为什么需要这种算法Algorithm 如果硬件已经在做乘法运算,为什么还需要乘法运算?,algorithm,architecture,Algorithm,Architecture,我正在学习快速整数乘法的算法,我想知道,既然计算机已经在CPU中内置了专用的硬件来执行乘法,为什么需要这种算法 是不是大数字很难乘法,但算法将其分解为更简单的步骤,硬件更容易处理,因为硬件擅长乘法较小的数字?这些算法往往只适用于多精度数字,这实际上对RSA之类的东西很有用。不管它们是否有回报,理论上有兴趣为多精度算法找出最佳算法 当然,硬件也需要设计,人们有时会使用除法算法,这些算法不是教给刚开始算术的孩子们的。Wikipedia建议,这并不完全是高科技。有一些例子建议甚至实际使用牛顿-拉斐逊迭
是不是大数字很难乘法,但算法将其分解为更简单的步骤,硬件更容易处理,因为硬件擅长乘法较小的数字?这些算法往往只适用于多精度数字,这实际上对RSA之类的东西很有用。不管它们是否有回报,理论上有兴趣为多精度算法找出最佳算法
当然,硬件也需要设计,人们有时会使用除法算法,这些算法不是教给刚开始算术的孩子们的。Wikipedia建议,这并不完全是高科技。有一些例子建议甚至实际使用牛顿-拉斐逊迭代法进行除法。这些算法往往只对多精度数字产生效果,而这些算法实际上对RSA之类的东西有用。不管它们是否有回报,理论上有兴趣为多精度算法找出最佳算法 当然,硬件也需要设计,人们有时会使用除法算法,这些算法不是教给刚开始算术的孩子们的。维基百科建议,这并不完全是高科技。有几个例子建议甚至实际使用牛顿-拉斐逊迭代法进行除法
i8086+ 16 bit
i80386+ 32 bit
x64 arch 64 bit
只允许计算多达16/32/64位的数字作为操作数i80x87FPU使用80位
数字表示法,该数字表示法从IEEE转换为IEEEfloat(32位)/double(64位)
限制精度进位
标志,ALU支持进位加减法。现在,如果您正在执行简单的+/-
,那么您只需添加/subs从最低(LSW)到最高(MSW)传播进位的所有数字。见:
O(n^2)
。其中n
是“位数”。一位数字通常是8/16/32/64
位数字或其最大的10^m
基数字。当你在计算小的数字(高达几个100x位)时,更高级的算法没有任何好处,因为它们有太多的开销。对于更大的数字,情况变得有利于他们。见:
- 特别是最后一次编辑
i8086+ 16 bit
i80386+ 32 bit
x64 arch 64 bit
只允许计算多达16/32/64位的数字作为操作数i80x87FPU使用80位
数字表示法,该数字表示法从IEEE转换为IEEEfloat(32位)/double(64位)
限制精度进位
标志,ALU支持进位加减法。现在,如果您正在执行简单的+/-
,那么您只需添加/subs从最低(LSW)到最高(MSW)传播进位的所有数字。见:
O(n^2)
。其中n
是“位数”。一位数字通常是8/16/32/64
位数字或其最大的10^m
基数字。当你在计算小的数字(高达几个100x位)时,更高级的算法没有任何好处,因为它们有太多的开销。对于更大的数字,情况变得有利于他们。见:
- 特别是最后一次编辑