二进制加法器

 二进制加法表:

+01
00001
10110
第一位叫做进位位,第二位叫做加法位

这个表可以拆分成两个表:

+加法01
001
110
+进位01
000
101

可以看出进位表和与门输出结果是一样的

AND(与门)01
000
101

因此可以利用与门计算二进制数加法的进位。

如何表示加法呢?

我们观察一下加法和或门(红色1处不同)

OR(或门)01
001
111

 

在看一下与非门(红色1处不同)

NAND(与非门)01
011
110

 

将它们画在一张表:

输入A输入B或门输出与非门输出想要的输出
00010
01111
10111
11100

仔细观察会发现,我们要想输出1的情况只有在或门和与非门输出都为1时。因此我们在加一个与门就可以实现加法了。

 

如上图,就是我们想要的加法(不包含进位输入)。

实际上,上图这个电路有个专门的名称,叫做异或门,简写为XOR。

特定的符号为:

                         

XOR(异或)01
001
110

到现在,两个二进制数相加的结果是由异或门的输出给出的,而进位是由与门给出的。因此我们可以将与门和异或门连在一起来计算两个二进制数。如下图,可以计算A和B的和

为了避免重复画与门和异或门,可以采取如下简单的表示方法。

这个符号被称为半加器(Half Adder)。之所以叫半加器是有原因的,它将两个二进制数相加,得出一个加法位和一个进位位。但绝大多数二进制数是多于1位的。半加器没有做到的是将之前一次加法可能产生的进位纳入下一次计算中。

为了将进位纳入计算中,我们可以使用两个半加器、一个或门做如下连接:

工作情况:

输入A输入B进位输入(来自前一位进位)加和输出进位输出
00000
00110
01010
01101
10010
10101
11001
11111

可以看出,符合二进制加法。

为了避免重复地画上面图,我们用以下形式来替代上图地一堆符号,它称为全加器(Full Adder)。

不过这个全加器只能对一位的二进制数做加法,如果我们需要多位的二进制数做加法可以将它们串起来,例如8位二进制加法可以如下实现:

其中最低位的进位输入为0。

16位加法器可以如下实现(接地表示输入为0):

  • 10
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值