在上一篇博文中我们用基本的逻辑门实现了8位二进制数的加法器,本文主题是在上文中加法器的基础上实现8位二进制减法器功能。
加法和减法在某些方面互相补充,但在机制方面这两种运算并不同。加法中会涉及到进位,减法中没有进位,而是借位--一种与加法存在本质区别的麻烦机制。下面我们先从十进制的减法开始,逐渐过渡到二进制的减法。
先看一个例子:253-176=??
当我们解决一个问题时,如果能用到我们已经知道的知识,那么问题解决起来就会快捷;然而如果要研究出一种新的方法,这固然很好,但是这往往并不是一种最有效的途径。这里用一个小技巧来让减法不涉及到借位(先说明过程然后解释原因),由于减法与计算机中以二进制编码的存储有关,详细地了解减法也很重要。
为了避免借位,我们从一串9中减去减数(在上例中是999,因为减数是176,三位),即999-176