《编码——隐藏在计算机软硬件背后的语言》精炼——第12章(二进制加法器)

本文介绍了如何使用逻辑门搭建二进制加法器,从人类计算二进制数的方法开始,逐步解析搭建进位位和加法位的逻辑电路,包括半加器和全加器的概念与连接,最终实现8位二进制数加法器的设计过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

“I hear and I forget. I see and I remember. I do and I understand”——Confucius

人类计算二进制数的方法

在这里插入图片描述
我们先计算本位的结果,称为加法位;再计算是否进位,称为进位位。

搭建二进制加法器

我们用逻辑门来搭建二进制加法器。它的思想与人类计算的思想很相似,先计算加法位,再计算进位位。我们先看如何计算进位位。

搭建单个进位位和加法位

搭建进位位的逻辑电路

进位位的输出表如下所示:
在这里插入图片描述
这和与门的输出是相同的,因此使用与门就可以表示进位位。

搭建加法位的逻辑电路

加法位的输出表如图所示:
在这里插入图片描述
与进位位不同,这个输出表不太容易得到。我们先思考或门和与非门的输出表:

  1. 或门:
    在这里插入图片描述

  2. 与非门:在这里插入图片描述

这两个逻辑门的输出表和加法位比较相似。这里使用离散数学的知识,用真值表把我们想要的结果列出来:
在这里插入图片描述
不难看出,我们想要的结果就是

(A OR B)AND(A NAND B)

也就是:
在这里插入图片描述
这个电路可以简化成一个符号,即异或门(XOR),当两个输入不一样时,输出为1。用符号表示就是:
在这里插入图片描述

半加器和全加器

我们将产生加法位和进位位的门连接在一起:
在这里插入图片描述
这就是半加器。用符号表示就是:
在这里插入图片描述
思考一下,我们在做竖式运算的时候,除了个位,其余位都要加上上一位的进位,因此需要一个三个输入的逻辑电路才行(这一位的两个输入和上一位的进位),我们可以用下述电路来表示:
在这里插入图片描述
每一个半加器可以把两个一位的二进制数相加,左上角的进位输入是上一位的进位位。这个电路的原理和竖式运算完全相同。
注意,右下角计算该位的进位输出时,我们也可以用半加器来计算,但经过实践,可以发现不会有两个CO都是1的情况,因此使用或门就可以产生与半加器相同的效果。
这个电路就是全加器,我们用符号表示就是:
在这里插入图片描述

连接全加器

我们的最终目标是要搭建一个8位二进制数的加法器。为此,我们需要连接8个全加器。

  1. 最低位的全加器的进位输入为0,因此用下图表示:
    在这里插入图片描述
  2. 中间的全加器是正常用法:
    在这里插入图片描述
  3. 最后的全加器需要把进位输出也展示出来:
    在这里插入图片描述

最后,我们构建了一个八位的加法器:
在这里插入图片描述
用符号表示就是:
在这里插入图片描述
请添加图片描述
我是霜_哀,在算法之路上努力前行的一位萌新,感谢你的阅读!如果觉得好的话,可以关注一下,我会在将来带来更多更全面的算法讲解!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

霜_哀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值