计算机与人脑(学生版)
上QQ阅读APP看书,第一时间看更新

第2章 数字方法

The Digital Procedure

在一个十进制数字计算机中,每一个数都是用通常书写或印刷一样的方法来表示的,即用一序列的十进制数字来表示。而这每一个十进制的数字,又用一组“符号”系统来表示。

在一个十进制数字计算机中,每一个数都是用通常书写或印刷一样的方法来表示的,即用一序列的十进制数字来表示。而这每一个十进制的数字,又用一组“符号”系统来表示。

符号,它们的组合与体现

一个符号,可以用十个不同的形式表现,以满足表示一组十进制数字的需要。要使一个符号只以两种不同形式表示,则只在每一个十进制数字相对应于整个符号组时才能使用(一组3个的两值符号,可构成8个组合,这还不够表示10个十进制数字之用;一组4个的两值符号,则可以有16个组合,这就够用而有余了。所以,十进制数字,必须用至少4个一组的两值符号来表示。这就是使用比较大的符号组的理由,见下述)。十值符号的一个例子就是在十根预定的导线上各自出现一个电脉冲。两值符号是在一根预定的导线上出现一个电脉冲,于是,脉冲的存在或不存在就传送了信息(这就是符号的“值”)。另一种可能的两值符号,是具有正极性和负极性的电脉冲。当然,还有许多种同样有效的符号体系。

我们将进一步观察这些符号。上述十值符号,显然是一组10个的两值符号。我们已经说过,这组符号是高度过剩了。最小的组,包括4个两值符号的,也是可以用在同一体系中的。请考虑一个四根预定的导线的系统,在它们之间,能够发生任何组合的、同时出现的电脉冲。这样,它可以有16种组合,我们可以把其中的任何10种组合规定为十进制10个数字的相应代表。

应当注意,这些符号通常都是电脉冲(或可能是电压或电流,持续到它们的标示生效为止),它们必须由电闸装置来控制。

数字计算机的类型及其基本元件

到目前为止的发展中,电磁机械的继电器、真空管、晶体二极管、铁磁芯、晶体管已经被成功地应用了;有时是相互结合起来应用,比如在计算机的存储器官(见后面的叙述)中用这一种元件,而在存储器官之外(在“作用”器官中)则用另一种,这样,就使计算机产生了许多不同的种类。2

并行和串行线路

现在,计算机中的一个数是用一序列的十值符号(或符号组)来表示的。这些符号,可以安排在机器的各个器官中同时出现,这就是并行。或者是把它们安排在机器的一个器官中,在连续的瞬间依次出现,这就是串行。比如,机器是为处理12位十进制数字而建造的,在小数点“左边”有6位,在小数点“右边”也有6位,那么,12个这样的符号(或符号组)都应在机器的每一信息通道中准备好,这些通道是为通过数字而预备的(这个方案,在各种机器中,可以采取各种不同的方法和程度,从而得到更大的灵活性。在几乎所有的计算机中,小数点的位置都是可以调整移动的。但是,我们在这里不打算进一步讨论这个问题)。

常用的基本运算

数字计算机的运算,常常以算术四则为基础。关于这些人们已经熟知的过程,还应该讲以下的几点:

第一,关于加法: 在模拟计算机中,加法的过程要通过物理过程作为媒介来进行(见上文所述)。与模拟计算机不同,数字计算机的加法运算,是受严格而具有逻辑特性的规则所控制的,比如,怎样形成数字的和,什么时候应该进位,如何重复和结合这些运算步骤,等等。数字和的逻辑特性,在二进制系统中显得更加清楚(与十进制比较而言)。二进制的加法表(0+0=00, 0+1=1+0=01,1+1=10),可表述如下: 如果两个相加的数字不同,其和数字为1;如果两个相加数字相同,其和数字为0,而且,如两个相加数字都是1时,其进位数字为1,如两个相加数字都是0时,其进位数字为0。因为会出现进位数字,所以实际上需要3项的二进制加法表,即(0+0+0=00,0+0+1=0+1+0=1+0+0=01,0+1+1=1+0+1=1+1+0=10,1+1+1=11)。这个加法表,可以表述为: 如果在相加的数字中(包括进位数),1的数目是奇数(即1个或3个),则和数字为1;如果1的数目不是奇数,则和数字为0。如果在相加数字中(包括进位数),1的数目是多数(2个或3个),则进位数字是1;如果1的数目不是多数(而是1个),则进位数字是0。3

第二,关于减法: 减法的逻辑构造,和加法非常相似。减法可以(而且是通常地)简化成为加法,运用一种简单的手段——补数法,就可以做到这一点。

第三,关于乘法: 乘法的基本逻辑特性,甚至比加法还要明显,其结构性质也比加法明显。在十进制中,乘数的每一个数字,与被乘数相乘,而得出乘积(这个相乘的过程,通常可用各种的相加方法,这对所有的十进制数字都是可以进行的)。然后,把上述各个乘积加在一起(还要有适当的移位)。在二进制中,乘法的逻辑特性更显明易见。二进制只可能有两个不同的数字——0与1,因此,只有乘数和被乘数都是1时,乘积才是1,否则乘积就是0。

以上的全部陈述,都是指正数的乘积而言。当乘数和被乘数有正号、负号时,则产生了4种可能的情况。这时,就需要有更多的逻辑规则来支配这4种情况。

第四,关于除法: 除法的逻辑结构与乘法是可比较的,但除法还须加入各种重复的、试错法的减法过程。在各种可能发生的变换情况中,为了得出商数,需要一些特别的逻辑规则,从而必须用一种串行的、重复的方法来处理这个问题。

总起来说,上述加、减、乘、除的运算,和模拟计算机中所运用的物理过程,有着根本的区别。它们都是交变作用的模式,组织在高度重复的序列中,并受严格的逻辑规则所支配。特别是对乘法和除法来说,这些规则具有十分复杂的逻辑特性(这些运算的逻辑特性,由于我们长期地、几乎是本能地对它们熟悉了,因而往往不易看出,可是,如果你强迫自己去充分表述这些运算,它们的复杂程度就会显现出来了)。