计算机可能是人类历史上最让人觉得神奇的机器,不要说没有专业知识的人,可能很多对计算很熟悉的人、从事计算机行业工作的人,也未必能够对它的原理有一个清晰的认识。比如,最常见的一个问题是,当你在键盘上按下一个A,在屏幕上就会出现一个A,可是,你能说得清楚这是怎么发生的吗?其实我也说不清楚,我相信很多人同样说不清楚,或者只是背书式地讲述了一段自己也未必明白的话,内容全部来自于教科书上。我不打算把这个问题弄得高深莫测,因为事实上没那个能力;我也不打算对专业人士作科普,而只是想让初中生能够对计算机的工作机制有一个简单而直观的认识,所以,我所讲的内容会尽量简单,简单到简陋,这样,我能看得懂,说得清楚,你们也肯定能看得懂。
计算机最重要的一个功能就是计算,像计算器也有这样的功能,虽然他们之间有着极其重大的差别,但是本质上还是有诸多的相同之处,也就是说,知道了计算器怎么工作,也就了解了计算机主要的一部分原理。为此,我们决定从研究计算器入手。
当然,我不会去拆开一个市场上卖的电子计算器告诉你它是怎么工作的,虽然它的原理已经很简单了——相对于计算机来说——但是,直接研究这个太复杂了。为了保持简单易懂,我们自己制作一个计算器吧。
不要怕,其实非常简单。先看我们的目标,一般的计算器能进行复杂的四则运算,这太复杂,我们要保持简单,只进行如下的运算:
0+0=0
1+0=1
0+1=1
1+1=2
简单吧,但是不同于我们自己去算,我们要用机器去算,这就是人类科技史上伟大的一步。
为了制造这样的机器,我们需要如下材料:两个开关,两个灯泡,一些导线,像图中那样连接起来:
怎么样,简单吧?一个计算器制造完成!
你不会觉得这是忽悠吧?的确不是,下面我就解释它的使用方法。
我们有两个开关,sw1和sw2,这是我们人用来操作的部分,就像计算器的按键;我们有两个灯泡,是电路做出反应的部分,就像计算器的屏幕。计算器的按键可以输入要计算的数字,我们的两个开关能打开或者合上;计算器的屏幕能够显示数字,而我们的两个灯泡会在通电后发光。说这些有什么用呢?请看:
如果我们用开关打开表示0,闭合表示1,那么如果sw1和sw2分别表示两个数字,对于前面的四个算式,我们就可以这样输入:
0+0 sw1打开 sw2打开
0+1 sw1打开 sw2闭合
1+0 sw1闭合 sw2打开
1+1 sw1闭合 sw2闭合
那么计算结果对不对呢?
0+0 0个灯泡亮
0+1 1个灯泡亮
1+0 1个灯泡亮
1+1 2个灯泡亮
看出来没?我们的机器计算结果完全正确!
事实上我们也明白了,机器跟不懂不懂什么1和2,他只是冰冷的机器,是人类的认识给了它意义。实际的机器比这个要复杂到无法形容的程度,但是,通过这个简单的实现,我们也就明白了它的本质。(笑)