Alp*_*neo 2 algorithm multiplication 32bit-64bit
我们使用以下算法进行一些32位*32位乘法
让我们想要将(32位)与b(32位)相乘,两者都有符号,
a =啊*2 ^ 16 + al [ah - 高16位,al - 低16位]
b = bh*2 ^ 16 + bl [bh - 高16位,bl - 低16位]
我们正在有效地做
结果=(al*bl)+(((ah*bl)+(al*bh))*2 ^ 16)+((ah*bh)*2 ^ 32)~~~
我的问题,
他们有更好的方法吗?
在任何主流编译器中,32位平台上的64位整数仿真与自己进行多步数学一样有效.但它会更加可靠地纠正.
当使用大到足以溢出的值进行简单算术时,即使是我见过的最高度调整的数学库也只使用int64.