计算机底层逻辑教材,第六章 计算机底层逻辑之3+1=4

原标题:第六章 计算机底层逻辑之3+1=4

我们先回忆下第五章设计的电路

e505071ac07ba4cad1983a6974ee6230.png

现在我们来验证它能不能正确计算3+1=4。

3+1=4,换算成二进制便是11+1=100

5d8564f024ce111581188d88cda1d1dd.png

很奇怪,它计算11+1=0,问题出在哪里?

我们来观察下11+1=100的计算过程,

28e599009212f1afc41d249ea1237a9c.png

再观察我们的电路,第一组数1+1是没问题的,得到加和数0和进位数1,这能在电路上反应出来,如下图

7f50cd41c20f13ed82337e6e0f15ea9f.png

我们再来观察第二组数,第二组数有两轮计算:1+0=1,1+1=10。我们先来看第一轮计算:1+0=1

171da04651da8a9fc17e00524f6c3104.png

由上图可见,电路在计算第二组数第一轮计算时没问题。

再来看第二组数第二轮计算:1+1=10

e11122e317e08d5fbd0cae3f59bb6e25.png

依上图可看出,1+1产生加和数0和进位数1,但进位数1并没有进位到高位(简而言之,就是左边第一颗灯泡要反应出这个进位数1),问题就出在这里。

先前我们说过,第二组数有两轮计算,这两轮计算都有可能产生进位数1,第一轮计算的进位数可以通过电路正常表达出来,但是第二轮计算的进位数1无法通过电路来表达。我们再来看图,如下

730a982848b51e3005893cfda274d720.png

由上图可知,第一轮计算和第二轮计算产生的进位数都需要左下边那颗高位灯泡来表达。所以在第一轮计算产生的进位数、第二轮计算产生的进位数和高位灯泡之间需要建立一个电路,以便灯泡能正确表达进位数,如下图

0b760c7f6cfed0a6a5cc3b9111dc754f.png

看上图,我们需要构建一个电路来控制高位灯泡,以便它可以正确的表达进位数。首先,我们要考虑到第二组数可能存在的几种情况:1+1+1,1+1+0,1+0+1,1+0+0,0+0+0,0+0+1,0+1+1,0+1+0。一共存在8种可能,整理这8组数,我们能够发现第一轮计算进位数、第二轮计算进位数和高位灯泡之间存在如下逻辑关系

6dea2c6d96f99a4ea6378d8fa96d7bcf.png

我们需要找到一组电路来满足上面的逻辑关系式。很有意思,我们在第一章所学的并联电路恰好可以满足以上逻辑关系式,所以我们只需要在原来的电路基础上再多装一个并联电路。如下图所示

7dd1ec618ef33caba94238e718219531.png

经过如此改造后,电路终于能够计算11+1=100,我们可以把这组电路称做二位加法器,因为它能计算任意两个二位以内二进制数之和(正数)。如果大家不信,可以一一验证,这里我就不来给大家验证了。

本章我们非常荣幸能够设计出这个两位二进制数加法器,但我们不会止步于此,我们的目标是星辰大海。下一章我们要去设计三位以及三位以上的加法器。返回搜狐,查看更多

责任编辑:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值