2015-12-28 100 views
3

你好,我目前使用Little Man Computer作为一个学校项目,我知道LMC有一个ADD和一个SUB功能。但是我知道LMC中没有乘法或除法功能,我想知道这是为什么。小人电脑

+0

这是因为乘法和除法都可以通过ADD和SUB方法完成。例如乘法也是加法。 8 * 2 = 8 + 8。另外[This link](http://mathforum.org/library/drmath/view/54338.html)将帮助您理解计算机如何执行此类操作 – NSNoob

+1

@NSNoob您必须注意,真实计算机有特殊的硬件电路来执行乘法和除法,因为如果你通过编码我们在小学学到的长手术(而不是使用ADD循环)来明确地执行这些操作,那么你就要等到母牛回家后才能得到任何结果。我不会进入指数运算(这当然是在基地处的ADD循环上的循环)。 Idle认为:在机械[差异引擎](http://www.computerhistory.org/babbage/howitworks/)上讨论MULT和ADD是有益的... –

+0

另请参阅[binary multiplier](https: //en.wikipedia.org/wiki/Binary_multiplier) –

回答

-1

我会想象你可以使用一些移位运算符来实现这一点,但我不确定如果这条路线是最佳的或唯一的方法。这里有一个链接,我发现讨论LMC乘法:http://www.experts-exchange.com/questions/24104347/Little-Man-Computer-How-to-multiply.html

该链接讨论了使用Add和Sub方法,它们可以用来实现乘法和除法。

至于部门,应该指出的是,电脑实际上并不能分工;他们使用乘法的倒数来做同样的事情。

+0

当然,除法是乘法的倒数......这就是它的定义。但[ALU](https://en.wikipedia.org/wiki/Arithmetic_logic_unit)如何实现它?我们在学校也一样。见[这里](http://www.cs.utah.edu/~rajeev/cs3810/slides/3810-08.pdf) –