自制计算机(1):机械计算机原理

PS:本系列旨在深刻理解计算机内部的工作原理,记录笔记,以供个人工作学习参考。


思考一下,如果你生活在一个没有电的时代,你如果要去进行一些计数或者是运算,你会采取哪些操作呢?

远古时代,我们也许可以通过数木棍来进行一些简单的加法运算,只要把两堆数好的木棍堆叠在一起,再重新去数就好了。

文字产生,我们有了符号可以去表达数量,并以此来进行加减乘除的运算,基本满足了生活与生产的需要。

但是,自从步入工业时代后,我们的计算量可以说是爆发性的增加,普通的人工计算已经不能满足生产的需要了,大量的人工计算员不仅费时费力,需要一笔庞大的金钱支出,而且所求运算的结果也是存在着错误或者误差的。

机械计算机就在这个时代下应运而生了。

现在我们要将一个简单的1位数加法来交给机器来做,我们会怎么讲这个运算过程进行移植呢?

对于这个过程来讲,分为三个部分,即:输入——计算——输出。

输入:

这也是最开始所遇到的问题,怎么将我们理解的1转化为机器能够运算的基本单位呢?

我们可以理解为1就是1块砖头,2就是2块砖头, 1个砖头+2个砖头=3个砖头:

自制计算机(1):机械计算机原理_第1张图片

但对于这个过程来讲,1+2=3,输出的3要经过堆叠过程,需要将1置在2之上,以此得到结果,这显得有些费力气。于是,我们换个方法——将砖头横放:

自制计算机(1):机械计算机原理_第2张图片

与竖放不同的是,横放可以直接将二者从左到右推出,并在推出的过程中完成了相加操作,以此得到结果3,省去了一个“搬起叠加”的过程。

受此启发,砖头只不过是一个计数的单位,我们如果将砖头换成别的东西,放到这个系统中进行推进,是不是可以得到更好的效果呢?如果让你替换,你又会想到什么呢?

尺子也许是一个不错的选择,1+2这个过程,就是先推1,再推2,然后数出来结果为3个格子,如果加以刻度,便可以完成一半的加法运算。

         自制计算机(1):机械计算机原理_第3张图片

但这仍然较为麻烦,因为我们仍需要在计算前后来数格子,于是我们便有了新的想法——给“尺子”添加一个旋钮。

与之对应的,尺子也换做齿轮来代替,因为旋转齿轮与下方的锯齿保持逐一对应的关系,暂按照十进制计算,一个旋钮上赋予10个齿,旋转一周就分别代表了0,1,2,3,4,5,6,7,8,9这10个数字。  

自制计算机(1):机械计算机原理_第4张图片 该图为网络图片,仅供示意

第一个旋钮旋转2个尺度,第二个旋钮旋转3个尺度,因为两个齿轮共同依附在同一齿带上,则齿带共向前行进了5个尺度,而我们可以提前在齿带上标记,则可以直接读出结果为5。

我们也可以定义顺时针为加,逆时针为减。

这样有关于输入的问题,看起来好像被解决了

计算:

为什么说看起来好像解决了输入的问题呢?这是因为两个输入的齿轮是同时依附在同一条齿带上,前者的转动必然带动后者的转动,反之亦然。这就无法为输入齿轮赋值,不能够达到明显的示意,仍需要人为查齿来进行旋转,那么有没有什么办法将前后齿轮的作用分开来进行计算呢?

思索良久无果,但恰巧视线落在了“1+2”中的“+”号上面,“+”号是一位运算符,定义了整个运算的方式,如果有必要,在计算的过程中,是需要按下这个加号的,对于2个输入的加法运算来讲,在按下加号的同时,假设输入旋钮的齿处于不同的深度,那么把齿条错位,是不是就避免了两个输入“互相影响”的问题呢?

此举并不影响最终的结果,是可行的。

输出:

上面已经说到,输出可以直接从最终的齿条标记读取出来。

但情况似乎还有些不对~

如果两个数相加,大于10怎么办,如果相加的数本身就是多位数呢?又该怎么表示与计算呢?

我们知道十进制满10进1,我们在个位齿轮每10的地方焊接一个标志,并在结果处的部分添加一套十位齿轮与齿条,十位的齿条与个位的标志位相联系,就完成了个位满十进位。

自制计算机(1):机械计算机原理_第5张图片

至于输入的十位、百位等就更简单了,只需要与输出的位数齿条相匹配,再加上“运算符”的齿轮置位,就完成了旋转输入,旋转输出的过程。图太过麻烦,就不画出来了,还需动用想象力。

那事实上到底是不是这样的呢?于是我就翻阅了许多资料来证实自己的想法,结果也是于想象中的几乎一样(除工艺制造)。

自制计算机(1):机械计算机原理_第6张图片

上图中,错落的齿轮,是不是就是用来处理不同位数的运算呢?

我们来看下,更加经典的手摇机械计算器的样子与工作方式:

自制计算机(1):机械计算机原理_第7张图片

我们看到,在红色框内,有9条尺码带,分别对应了个位、十位等,在每条尺码带上又有0-9个数字,这个是不是就相当于我们上面所说的齿带/传送带呢?

我们继续来看下,这个齿带的内部构造:

自制计算机(1):机械计算机原理_第8张图片

完全一样,小齿轮负责本位的计数,而且有标志位的齿负责进位计数!

自制计算机(1):机械计算机原理_第9张图片

整体上的内部效果为:

自制计算机(1):机械计算机原理_第10张图片

本文的目的为简单地了解机械计算器的工作原理,至于机械计算机是如何进行减操作、乘、除操作等,深究下去没有过多意义(毕竟这玩意已经属于古董了)。相信我们也能够从加法操作中,逐步通过改变齿轮的位置来、转动的方向来进行减法、乘除,升至更复杂的运算操作!

如果你对机械计算器仍有兴趣,我整理并上传了一些有关机械计算器的剖析视频,如果有兴趣,就点开看看吧!

>>>>>>>>>>>>>>>>>>>>>>>>视频传送门<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<


PS:下篇写下电子计算机的初端——电子管与晶体管

 

你可能感兴趣的:(自制计算机)