购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

计算机的计算原理

我们还能利用触发器进行数的运算。下面,我们就来看看,它是怎样实现两个数相加的。

如图3所示,把3排触发器按照图中的样子连起来。第一排触发器用来记被加数,第二排用来记加数,最后一排记前两排加起来的和。当上面两排触发器的状态为“1”时,会向第三排的触发器输出脉冲信号。

从图中可见,上面两排触发器分别记着二进制数101和111。最后一排的第一个触发器从上面两排的第一个触发器各得到一个脉冲信号,即共得到两个脉冲信号。根据前面的分析,此时最下面的第一个触发器依然处于“0状态”,同时会给第二个触发器发送一个回答脉冲。另外,第二个触发器会从第二个二进制数那里得到一个脉冲信号。也就是说,这个触发器共得到了两个脉冲信号。因此,该触发器也处于“0状态”,且它还会向第三个触发器发送一个回答脉冲。除了得到这个回答脉冲之外,第三个触发器还从上面的两个触发器中得到了两个脉冲,即该触发器共得到3个信号,结果变成“1状态”,同时输出一个回答脉冲。第四个触发器得到了这个回答脉冲,且再没有其他脉冲信号输入,因此第四个触发器的状态为“1”。上述过程实现了两个二进制数的加法运算,即:

图3

如果换算成十进制的数,就是5+7=12。在图-3中,最下面的一排触发器输出的回答脉冲,相当于我们在用“竖式”进行加法运算时的进位。如果每排触发器不是4个,而是20个或更多,我们就能进行百万乃至千万级的数的加法运算。

需要说明的是,借助触发器进行加法运算的实际装置,比图中的情况稍微复杂一些。在实际的装置中,我们还要考虑信号的“延迟”问题,通过一些装置来实现这个功能。具体来说,在图-3中,在接通装置的瞬间,上面两排触发器输出的脉冲同时加在最后一排的第一个触发器上,两个信号很容易混合在一起,被误认为接收到的只有一个信号。为了避免这种情况的发生,就要让上面的两个信号先后到达,即后一个信号要比前一个信号“延迟”一些。如果加上这一延迟装置,两个数相加的时候,就会比触发器单纯计数花费的时间多一些。

稍微修改一下上面的设计方案,就能进行减法运算,甚至是乘法运算和除法运算。其实,乘法运算就是连续的加法运算,因此,花费的时间就比加法运算多很多。

上述过程就是现代计算机的计算原理,计算机运用这一装置,每秒钟可以运算1万甚至10万多次,未来每秒运算速度甚至能达到上百万次、上亿次。

你可能会觉得,这么快的运算速度有什么用呢?在很多人看来,要计算一个15位数的平方,用1/1000秒的时间来计算,跟用1/4秒的时间来计算,似乎也没什么差别,都是一瞬间而已。

其实不然。我们可以来看一个例子:一个非常优秀的象棋选手,在下每一步棋的时候,落子之前都会思考几十甚至上百种可能的情况。假设他考虑一种情况需要花费几秒钟,上百个方案就需要花费几分钟甚至几十分钟。这样的话,在复杂的棋局中,棋手就会感觉时间不够用,因为思考的时间占据了整个比赛所规定的大部分时间,导致最后只能匆忙落子。如果把分析走棋方案的工作交给计算机来做,会怎么样呢?计算机每秒钟能进行上万次运算,它分析完所有的走棋方案只需要一瞬间,自然不会出现时间不够用的情况。

你可能会说,计算是计算,下棋是下棋,毕竟不同。棋手下棋的时候,不是在计算,而是在思考,计算机怎么可能会下棋呢?你不必疑惑,我们会在后面的章节中详细分析此问题。 tcnq16mG9+29RRG4aNPWsEtnmWYVTbsXjbdR5HlXH2phyCD5qRy7QzJHyKARN3jA

点击中间区域
呼出菜单
上一章
目录
下一章
×