第2.2章 使用两个“半加器”实现一个“全加器”

刚才的电路考虑了加法的运算结果可能会有进位(当A和B都为1时),可以作为最低位的运算电路,但不能计算其他位(十位、百位等),因为没有考虑低位的进位结果。因此,只能叫做半加器(Half Adder)。

实际上,一个完整的加法器的输入端有3个:A、B和低位的进位结果CI。

全加器(Full Adder)

这个全加器相当于是计算3个位(A、B、CI)的和。因此,其最终的“和输出”为三个数的异或。进位输出的规律为:3个数中如果有2个或者以上的数为1时,“进位”位就为1.
全加器真值表
ABCICOS
00000
00101
01001
01110
10001
10110
11010
11111

为了实现这个功能,可以使用两个半加器:


这个一位的全加器应用于个位时,需要将进位输出接到地,即置为0:

将多个“一位全加器”级联起来,可以变成“多位全加器”,上一个全加器的“进位输出”连到下一个全加器的“进位输入”。比如8位全加器如下:

可以简化为:
或者:

同样的,可以将两个8位全加器级联起来,变成一个16位的全加器:

最后:你可能会问:“计算机真的是以这种方式把数字加起来的吗?”
基本上是这样的,但不完全是。
首先,加法器应该做得更快。如果你明白这个电路是如何工作的,你会看到最低位相加
产生的进位作为下一列数相加的一个输入,而第3列的加法又等着第2列加法的进位,依此类
推。加法器总体的速度等于加数的位数乘以单个全加器的速度。这种进位方式称为行波进位。
更快的加法器使用称为先行进位的加法电路,从而加快了加法进程。
第二(但是十分重要),计算机再也不用继电器了!尽管它们曾经用过。建于2 0世纪3 0年
代初的第一批数字计算机使用继电器,后来又用了真空管。现代计算机用晶体管。当用在计
算机中时,晶体管和继电器的功能差不多,但是晶体管速度更快,体积更小,更安静,更省
电,而且还便宜不少。构造一个8位加法器仍然需要1 4 4个晶体管(如果采用先行进位,则需
要更多),但整体电路的体积却小多了。——《编码的奥秘》,第12章。
  • 29
    点赞
  • 103
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值