二进制加法机的简单实现

二进制加法机的简单实现  

2010-11-17 21:58:29|  分类: 计算机基础 |  标签:加法机  |字号 订阅

在计算机中只有加法,可以说实现了加法,我们就可以实现减法、乘法、除法甚至更复杂的操作,但是这一切的前提是让机器实现二进制加法运算。二进制的加法其实最简单,但是计算机如何能够实现二进制的加法呢?

现在的计算机是晶体管计算机,其实实现加法的途径还是逻辑门电路,通过晶体管连接的逻辑门电路就可以实现二进制加法。

首先,先看看二进制加法是怎么算的。

    0     1

+  0     1

_______

  1      0

 + 0 1
 0 0 1
 1 1 10
把运算结果分成"和"与"进位"两部分

 和 0 1
 0
 1
  

 进位
 0
 1

 不知道看出来它们和逻辑门的真值表有些相似,其实我们要做的就是把二进制加法和逻辑门联系起来,这样我们才能让计算机实现二进制加法运算

对于上面提到的运算结果中的"进位"部分,和"与门"的输出是完全一样的

AND      0         1

0           0         0

1           0         1

 

 

而对于"和"这部分来说,和"异或门"的输出时完全一样的。

异或门输出为1时,A输入为1或B输入为1,但不能同时为1

XOR

0

  1

0

0

  1

1

1

  0

 

  异或门的简图如下




这样用逻辑门就可以实现加法运算了,如下图

 

只不过它只能实现一个位的二进制加法,由于多位运算存在进位问题,所以这只能算是半个加法器。

我们把这个"半加器"简化为下图

 

它可以把两个二进制位A 和B相加,从而得到一个和输出(简称S) 和一个进位输出(简称C O )。但大部分二进制数是多于1位的,半加器不能够把前一步的进位加到本次运算中。例如做如下加法:

   1 1 1 1

+ 1 1 1 1


1 1 1 1 0

只能用半加器来计算最右边一列数:即1加1等于0,进位为1。对于右边第2列数,由于进位的存在,需要加3个数。接下来的几列都有这个问题,每一列二进制位的加法都包括了来自前一列的进位。

要把3个二进制数相加,需要按如下方式把两个半加器和一个或门连接起来:

它的工作原理是这样的。

对于第一个半加器是将这一位相加得到一个"和"输出和一个"进位"输出,由于要加上前一位的进位,所以此时引入第二个半加器,第二个半加器把这一位上的"和"输出和前一位的进位值相加,得到一个"和"输出和一个"进位输出",这个"进位输出"和第一个半加器的进位输出通过一个"或门"最后得到最终的"进位输出"。

 

这个组合就是"全加器",简化为下图

 

把多个全加器连接起来,就可以实现对位二进制的加法运算。

连接方法:每个全加器的进位输出连接下一个全加器的进位输入。

如图,八个全加器相连

上图的可以简化成下图的8位的加法器

 

有了8位加法器,也就可以画出16位,或者更多位的加法器,只要有足够多的逻辑门,换句话说就是有足够多的晶体管。

 

16位加法器的连接,只需两个8位加法器

其它的一次类推。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值