计算机实现原理专题--二进制减法器(一)中说明了基本原理,现准备说明如何来实现。

首先第一步255-b运算相当于对b进行按位取反,因此可将8个非门组成如下图的形式:

计算机实现原理专题--二进制减法器(二)-LMLPHP

由于每次做减法时,我们可以人为的判断被减数和减数的大小,所以当被减数大于减数时中间结果一定会上溢也就是多出1位,因此中间结果最多会有9位,而最终只要去掉最高位剩下的8位就是最后结果(这里虽然是减法运算,但是实际上并没有减法,因此在使用前面所说的加法器运算时可以直接忽略最后的进位)。

当被减数小于减数时中间结果会出现负数,最后需要颠倒两数进行相减(实际上是对原值进行取反,然后通过比较器可知结果为负)。

但是如果想让计算器来判断被减数和减数的大小,又改如何设计呢?其实到目前为止我们可以做出一个两位数的加法器和减法器了,只不过在实现减法的时候还需要人工判断一下两数的大小。

08-24 09:13