计算机如何对两个数字进行乘法运算,例如100 * 55。

我的猜测是计算机做了重复加法来实现乘法。当然,整数可能就是这种情况。但是,对于浮点数,必须有其他逻辑。

注意:这是在采访中问到的。

最佳答案

重复加法是将数字相乘的一种非常低效的方式,想象一下将1298654825与85324154相乘。使用二进制进行长乘法的速度要快得多。

1100100
0110111
=======
0000000
-1100100
--1100100
---0000000
----1100100
-----1100100
------1100100
==============
1010101111100

对于浮点数,使用科学计数法。
100 is 1 * 10^2 (10 to the power of 2 = 100)
55 is 5.5 * 10^1 (10 to the power of 1 = 10)

要将它们相乘,则应将尾数相乘并相加指数
= 1 * 5.5 * 10^(2+1)
= 5.5 * 1000
= 5500

计算机使用二进制等效项执行此操作
100 = 1.1001 * 2^6
55  = 1.10111* 2^5
-> 1.1001 * 1.10111 * 2^(6+5)

10-06 01:42