计算机世界中的加法,制作4位计算机图解澳门网上正规赌场网址:

你是否想过,计算机为什么会加减乘除?或者更直接一点,计算机的原理到底是什么?

你是否想过,计算机为什么会加减乘除?或者更直接一点,计算机的原理到底是什么?
Waitingforfriday有一篇详细的教程,讲解了如何自己动手,制作一台四位计算机。从中可以看到,二进制、数理逻辑、电子学怎样融合在一起,构成了现代计算机的基础。

可能你不知道,计算机的世界做的唯一工作就是做加法计算。

Waitingforfriday有一篇详细的教程,讲解了如何自己动手,制作一台四位计算机。从中可以看到,二进制、数理逻辑、电子学怎样融合在一起,构成了现代计算机的基础。

一、什么是二进制?

先来回顾一下在进行十进制加法的步骤。比如让245和673相加,会把这个问题分解为几个简单步骤,每个步骤只需要将两个十进制数相加。比如先把5和3相加,小时候背过的加法表就是解决这个问题。

一、什么是二进制?

首先,从最简单的讲起。

二进制不同于十进制的地方在于二进制相加的情况更加简单,情况更少。如下表:

首先,从最简单的讲起。

计算机内部采用二进制,每一个数位只有两种可能”0″和”1″,运算规则是”逢二进一”。举例来说,有两个位A和B,它们相加的结果只可能有四种。

澳门网上正规赌场网址 1

计算机内部采用二进制,每一个数位只有两种可能”0″和”1″,运算规则是”逢二进一”。举例来说,有两个位A和B,它们相加的结果只可能有四种。

澳门网上正规赌场网址 2

为了保持一致,使得每个结果都是两位数。改进如下:

澳门网上正规赌场网址 3

这张表就叫做”真值表”(truth
table),其中的sum表示”和位”,carry表示”进位”。如果A和B都是0,和就是0,因此”和位”和”进位”都是0;如果A和B有一个为1,另一个为0,和就是1,不需要进位;如果A和B都是1,和就是10,因此”和位”为0,”进位”为1。

澳门网上正规赌场网址 4

这张表就叫做”真值表”truth
table),其中的sum表示”和位”,carry表示”进位”。如果A和B都是0,和就是0,因此”和位”和”进位”都是0;如果A和B有一个为1,另一个为0,和就是1,不需要进位;如果A和B都是1,和就是10,因此”和位”为0,”进位”为1。

二、逻辑门(Logic Gate)

然后进行分析。发现二进制相加中,其中一位叫做加法位,另一个叫进位位。

Waitingforfriday有一篇详细的教程,讲解了如何自己动…

布尔运算(Boolean
operation)的规则,可以套用在二进制加法上。布尔运算有三个基本运算符:AND,OR,NOT,又称”与门”、”或门”、”非门”,合称”逻辑门”。它们的运算规则是:

加法位:

  AND:如果( A=1 AND B=1 ),则输出结果为1。

  OR:如果( A=1 OR B=1 ),则输出结果为1。

  NOT:如果( A=1 ),则输出结果为0。

澳门网上正规赌场网址 5

两个输入(A和B)都为1,AND(与门)就输出1;只要有任意一个输入(A或B)为1,OR(或门)就输出1;NOT(非门)的作用,则是输出一个输入值的相反值。它们的图形表示如下:

进位位(和与门的输出结果一样):

澳门网上正规赌场网址 6

澳门网上正规赌场网址 7

三、真值表的逻辑门表示

看到这个结果是否产生了什么联想。和上一篇讲的真值表,逻辑门似乎有些相似。

现在把”真值表”的运算规则,改写为逻辑门的形式。

其实在二进制加法中,加法和进位是分别进行的。运算过程和十进制加法一样。将数字串从右往左一次逐渐相加进位。

先看sum(和位),我们需要的是这样一种逻辑:当两个输入不相同时,输出为1,因此运算符应该是OR;当两个输入相同时,输出为0,这可以用两组AND和NOT的组合实现。最后的逻辑组合图如下:

接下来以一个加法长度为8位的简单加法器为例子。也就是我们要加的二进制数,范围是0000
0000 到1111 11111。相加和最大可以为1 1111 1110,十进制为510.

澳门网上正规赌场网址 8

输入设备如下:

再看carry(进位)。它比较简单,两个输入A和B都为1就输出1,否则就输出0,因此用一个AND运算符就行了。

澳门网上正规赌场网址 9

澳门网上正规赌场网址 10

最上面一排是被加数,第二批是加数

现在把sum和carry组合起来,就能得到整张真值表了。这被称为”半加器”(half-adder),因为它只考虑了单独两个位的相加,没有考虑可能还存在低位进上来的位。

最后代表输出:这一排是灯泡(灯泡亮的代表1,不亮的代表0),注意这里为什么需要9个灯泡。因为两个八进制相加结果可能为9位。

澳门网上正规赌场网址 11

比如想要把0110 0101 和1011 0110相加,表示及结果(1 0001 1011)如下

四、扩展的真值表和全加器

澳门网上正规赌场网址 12

如果把低位进上来的位,当做第三个输入(input),也就是说,除了两个输入值A和B以外,还存在一个输入(input)的carry,那么问题就变成了如何在三个输入的情况下,得到输出(output)的sum(和位)和carry(进位)。

上面提到,利用与门可以计算出两个二进制加法的进位。麻烦的是加法位这么弄。加法的真值表和或门及与非门有些相似。

这时,真值表被扩展成下面的形式:

澳门网上正规赌场网址 13

澳门网上正规赌场网址 14

澳门网上正规赌场网址 15

如果你理解了半加器的设计思路,就不难把它扩展到新的真值表,这就是”全加器”(full-adder)了。

澳门网上正规赌场网址 16

澳门网上正规赌场网址 17

通过对比和明显的想到几者之间的关系。将或门和与非门输出的结果和一个与门串联就得到了加法位的真值表。图如下:

五、全加器的串联

澳门网上正规赌场网址 18

多个全加器串联起来,就能进行二进制的多位运算了。

在电学上有个专门的符号表示这个电路,叫异或门。

先把全加器简写成方块形式,注明三个输入(A、B、Cin)和两个输出(S和Cout)。

澳门网上正规赌场网址 19

澳门网上正规赌场网址 20

类型 电路图 符号 说明 真值表
异或门(XOR)
澳门网上正规赌场网址 18
澳门网上正规赌场网址 19
只有当其中一个输入为1才输出1

然后,将四个全加器串联起来,就得到了四位加法器的逻辑图。

至此,我们已经得到两个二进制数相加的结果由异或门的输出给出,进位位由与门的输出给出。于是将异或门和与门连在一起计算二进制数的和

澳门网上正规赌场网址 21

澳门网上正规赌场网址 22

六、逻辑门的晶体管实现

同样也有简化的符号图(半加器)

下一步,就是用晶体管做出逻辑门的电路。

澳门网上正规赌场网址 23

先看NOT。晶体管的基极(Base)作为输入,集电极(collector)作为输出,发射极(emitter)接地。当输入为1(高电平),电流流向发射极,因此输出为0;当输入为0(低电平),电流从集电极流出,因此输出为1。

半加器意思就是没有加完,因为这个电路图还没实现进位的功能。

澳门网上正规赌场网址 24

常规来讲两个二进制相加,半加器只能用于最右边的一列。如果存在进位,从右边算起的第二列,实际上需要三个二进制位相加。对于三个二进制位相加,需要将两个个半加器和一个或门连接。

接着是AND。这需要两个晶体管,只有当两个基极的输入都为1(高电平),电流才会流向输出端,得到1。

澳门网上正规赌场网址 25

澳门网上正规赌场网址 26

工作原理:从最左边第一个半加器输入A、B。会产生一个加法位和进位位。加法位必须和前一列的进位位相加。然后在把他们输入到第二个半加器中。第二个半加器输出的加法为是最后的结果。两个半加器的进位输出又被输入到一个或门中。为什么这里用或门,本来应该一个半加器的。因为两个半加器的进位输出不可能会同时为1(比如这里如果A和B相加进位1,则此时加法位必定为0,第二个半加器中B已经为0了,不可能再次进位),所以或门在这里就已经够了。因为或门和异或门的区别仅仅在输入都为1的时候才不同。

最后是OR。这也需要两个晶体管,只要两个基极中有一个为1(高电平),电流就会流向输出端,得到1。

同样用符号代替上面的图

澳门网上正规赌场网址 27

澳门网上正规赌场网址 28

七、全加器的电路

现在讲前面提到的电路连起来。首先将最右端的两个开关和最右端的一个灯泡连在全加器上。最右端没有进位输入,所以用接地代替,输入为0。

将三种逻辑门的晶体管实现,代入全加器的设计图,就可以画出电路图了。

澳门网上正规赌场网址 29

澳门网上正规赌场网址 30

接下来第二列及剩下的。第一个全加器的进位输出就是第二个全加器的进位输入。

(点击看大图)

澳门网上正规赌场网址 31

按照电路图,用晶体管和电路板组装出全加器的集成电路。

注意,第8个灯泡和最后一对开关要以如下方式接在全加器上,有进位的情况,最后一个进位输出到第9个灯泡上。

澳门网上正规赌场网址 32

澳门网上正规赌场网址 33

左边的三根黄线,分别代表三个输入A、B、Cin;右边的两根绿线,分别代表输出S和Cout

汇总一下,这图,这逻辑很漂亮。8个全加器连在一起,每个全加器的进位输出都作为下一个全加器的进位输入。

八、制作计算机

澳门网上正规赌场网址 34

将四块全加器的电路串联起来,就是一台货真价实的四位晶体管计算机了,可以计算0000~1111之间的加法。

简单表示如下:

澳门网上正规赌场网址 35

澳门网上正规赌场网址 36

电路板的下方有两组各四个开关,标注着”A”和”B”,代表两个输入数。从上图可以看到,A组开关是”上下上上”,代表1011(11);B组开关是”上下下下”,代表1000(8)。它们的相加结果用五个LED灯表示,上图中是”亮暗暗亮亮”,代表10011(19),正是1011与1000的和。

另一种简单表示:

九、结论

澳门网上正规赌场网址 37

虽然这个四位计算机非常简陋,但是从中不难体会到现代计算机的原理。

扩展到16位二进制加法器,也就是把两个8位二进制加法器级联在一起。以此类图什么24,32位加法器。这是自己编的。原理也一样。注意第一个、中间连接点、最后一个.

完成上面的四位加法,需要用到88个晶体管。虽然当代处理器包含的晶体管数以亿计,但是本质上都是上面这样简单电路的累加。

澳门网上正规赌场网址 38

作者/阮一峰

至此,可以说是把计算机最为基础的加法介绍完了。当然这种加法器是上古时代的加法器。通过上面的分析,加法器的总体速度取决于数字的位位乘以全加器器件的速度。到后来有一种超前进位加法器(carry
look ahead
adder),它是对普通的全加器进行改良而设计成的并行加法器,主要是针对普通全加器串联时互相进位产生的延迟进行了改良。超前进位加法器是通过增加了一个不是十分复杂的逻辑电路来做到这点的。

扩展阅读

超前进位加法器

Post Author: admin

发表评论

电子邮件地址不会被公开。 必填项已用*标注