1. 程式人生 > >寫給外行的計算機原理(一)簡單的計算

寫給外行的計算機原理(一)簡單的計算

計算機可能是人類歷史上最讓人覺得神奇的機器,不要說沒有專業知識的人,可能很多對計算很熟悉的人、從事計算機行業工作的人,也未必能夠對它的原理有一個清晰的認識。比如,最常見的一個問題是,當你在鍵盤上按下一個A,在螢幕上就會出現一個A,可是,你能說得清楚這是怎麼發生的嗎?其實我也說不清楚,我相信很多人同樣說不清楚,或者只是背書式地講述了一段自己也未必明白的話,內容全部來自於教科書上。我不打算把這個問題弄得高深莫測,因為事實上沒那個能力;我也不打算對專業人士作科普,而只是想讓初中生能夠對計算機的工作機制有一個簡單而直觀的認識,所以,我所講的內容會盡量簡單,簡單到簡陋,這樣,我能看得懂,說得清楚,你們也肯定能看得懂。

計算機最重要的一個功能就是計算,像計算器也有這樣的功能,雖然他們之間有著極其重大的差別,但是本質上還是有諸多的相同之處,也就是說,知道了計算器怎麼工作,也就瞭解了計算機主要的一部分原理。為此,我們決定從研究計算器入手。

當然,我不會去拆開一個市場上賣的電子計算器告訴你它是怎麼工作的,雖然它的原理已經很簡單了——相對於計算機來說——但是,直接研究這個太複雜了。為了保持簡單易懂,我們自己製作一個計算器吧。

不要怕,其實非常簡單。先看我們的目標,一般的計算器能進行復雜的四則運算,這太複雜,我們要保持簡單,只進行如下的運算:

            0+0=0

            1+0=1

            0+1=1

            1+1=2

簡單吧,但是不同於我們自己去算,我們要用機器去算,這就是人類科技史上偉大的一步。

為了製造這樣的機器,我們需要如下材料:兩個開關,兩個燈泡,一些導線,像圖中那樣連線起來:

        

怎麼樣,簡單吧?一個計算器製造完成!

你不會覺得這是忽悠吧?的確不是,下面我就解釋它的使用方法。

我們有兩個開關,sw1sw2,這是我們人用來操作的部分,就像計算器的按鍵;我們有兩個燈泡,是電路做出反應的部分,就像計算器的螢幕。計算器的按鍵可以輸入要計算的數字,我們的兩個開關能開啟或者合上;計算器的螢幕能夠顯示數字,而我們的兩個燈泡會在通電後發光。說這些有什麼用呢?請看:

如果我們用開關開啟表示0,閉合表示1,那麼如果sw1sw2分別表示兩個數字,對於前面的四個算式,我們就可以這樣輸入:

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個燈泡亮

看出來沒?我們的機器計算結果完全正確!

事實上我們也明白了,機器跟不懂不懂什麼12,他只是冰冷的機器,是人類的認識給了它意義。實際的機器比這個要複雜到無法形容的程度,但是,通過這個簡單的實現,我們也就明白了它的本質。(笑)