所以,我过去几个月一直在努力学习计算机,并且真正详细了解它们的工作原理。我最近在学习减法器,我想知道..
首先,根据我的理解,减法者使用两个赞美来得到结果。但是,为什么减去呢?例如,两个人对5(0101)的称赞是1011.但是,这也是正十一。即使数字被否定,是什么让减法者把它当作负数而不是另一个正数呢?如果问题是8 - 5,是什么阻止它做8 + 11? 是什么让它识别出无符号位的有符号位?我听说程序运行决定,但问题是什么使程序能够决定是否加减,以及如何解释为CPU和AlU。
另外,我已经了解到AlU使用的是一个在加法和减法之间切换的电路。这个电路如何工作?是什么决定是否加减?
最后,这个电路如何从加法切换到减法?我看过的唯一一个减法器是一个没有连接门的加法器?电路如何改变功能?
答案 0 :(得分:0)
减法只是加法,第二个操作数是负数。构造二进制补码,以便添加负数只是按预期工作(当忽略溢出时)。
ALU不需要知道数字是正数还是负数,但在二进制补码中,最高有效位设置为1
的所有数字都是负数。 ALU并不关心,因为两个补码的设计使得一切正常。
现在,减法只是加法,所以我们可以使用相同的电路来执行这两个功能。你所谈论的开关是什么,它否定了第二个操作数(否定在两个补码中相当容易,有几种方法可以做到),然后它会添加数字。