Charles Petzold《Code》----2017.1.13 读12章

来源:互联网 发布:水平垂直奇偶校验算法 编辑:程序博客网 时间:2024/05/22 12:38

注:所有笔记均为自己的理解总结,可能并非书本原文,对错不予负责。

摘要:之前的章节教会了我们如何用计算机传递信息、如何用计算机进行逻辑判断。这一章通过使用上一章介绍的逻辑门知识,教我们如何用计算机进行加法运算。其中,介绍了异或门、半加器、全加器、8位加法器。


加法的意义:加法是计算机唯一所做的事情,因为通过使用用于加法的机器,我们还可以构造用加法来实现减法、乘法、除法以及计算房产抵押款、引导向火星发射卫星、下棋和电话计费等等功能的机器。


二进制加法机

基本的数学思想:二进制数字相加的结果是两位数,分别称为“”和“进位”。

实现加法机:

1、我们先做“进位运算”。
进位运算如下图:
这里写图片描述
同时,与门的输出如下图:
这里写图片描述
所以,我们可以用一个与门来进行“进位运算”。

2、做“和运算”。
和运算如下图:
这里写图片描述
同时,或门、与非门的输出如下图:
这里写图片描述

这里写图片描述
所以,我们可以将或门和与非门的结果再用一个与门结合起来,以完成和运算。如下图:
这里写图片描述
其实,上图有它自己的名字,称为“异或门”(Exclusive OR gateXOR),也用下图符号来表示:
这里写图片描述

3、经过以上两个步骤就能做出一个“半加器”(Half Adder)。
如下图:
这里写图片描述
也可简单的表示成如下图:
这里写图片描述
其中的方块就是半加器。它可以把两个二进制位A和B相加,从而得到一个和输出(简称S)和一个进位输出(简称CO)。但是半加器不能够把前一步的进位加到本次运算中。

4、不仅将相应的两个二进制位相加,还要加上前一列的进位,这就是全加器(Full Adder)。
要把3个二进制数相加,需要按如下方式把两个半加器和一个或门连接起来:
这里写图片描述
原理:先从最左边第一个半加器的A输入和B输入开始,其输出是一个和及相应的进位。这个和必须和前一列的进位输入(简称CI)加起来,然后把它们输入到第二个半加器。第二个半加器的和输出是最后的和。两个半加器的进位输出又输入到一个或门,或门产生了本次加法的进位输出。你可能会想这里还需要一个半加器,这当然是可行的。但当你把所有的可能情况考虑完,你会发现两个进位不可能同时为1。当两个输入不能同时为1时,或门已足够用于表示两个进位的加法,此时或门和异或门的功能是相同的。
上图可简化表示为下面的方块图,称为“全加器(Full Adder)”:
这里写图片描述

5、八位加法器。
一个八位加法器需要144个继电器。每个与门、或门、与非门都需要2个继电器,所以,一个异或门需6个继电器。一个半加器由一个异或门和一个与门构成,所以它要8个继电器。1个全加器需要两个半加器和一个或门,所以它要18个继电器。对于8位二进制加法机而言,共需8个全加器,因而总共是144个继电器
这里写图片描述

这里写图片描述

8位加法器的另一种画法:
这里写图片描述

6、16位加法器:
这里写图片描述


如何看待本章介绍的加法机:
这里写图片描述

0 0
原创粉丝点击