。四位二进制减法器
修改于04/1754 浏览攻略
1、二进制减法运算本身比较特别,自己看别人做的常常理解不了,所以就自己捣鼓了两天才按照自己的思路弄出来。🤡题外话:自己大学学的数字电路都基本忘光了,不得已得去重新学点基础
。
。2、我制作的是两个四位正数二进制相减的运算逻辑电路,可以大数减小数,也可以小数减大数。
3、我的减法器是基于二进制减法运算规则制作的,也就是涉及到二进制的反码和补码,因为二进制减法是通过减数取反+1再与被减数相加进行运算的。然而,我发现,大数减小数就直接通过把减数取反+1再与被减数相加进行计算就行,而小数减大数则在进行相加计算完后还要把结果还原,即去补去反。
4、因为要制作的是减法器,那么去补(也就是-1)这一步骤其实是无法完成的,因为本来就是没有减法才要创造减法,没有减法要怎么-1呢,那这样就变成bug了,所以想要绕过-1这个步骤,就需要在把减数进行取反+1的时候先不要+1,在相加得出结果之后再根据情况选择是否+1,如果是大数减小数就+1,如果是小数减大数就不用,因为前面换成补码要+1,后面还原又要-1,那就抵消掉了。
5、因为减数是看成负数相加,那么负数就要在第5位二进制用1来表示负数。
6、困难解决了,就可以设计了,按照这个思路去设计,第4点提到的选择是否+1,这就涉及到判断这个结果是正数还是负数,我发现,大数减小数得出来的结果没有溢出位,即第5位二进制数是0,那么第5位数相加就是1,而小数减大数有溢出位,即第5位二进制数是1,那么相加得出的是0,这就可以判断了。
7、判断结果正负后就可以真正算出运算后的差值了,然后利用第5位数加上非门来表示结果的正负,1为负,0为正。




