科技簡章046-為什麼計算機要用二進位制?

前面章節介紹的都是半導體和晶片相關的內容,屬於“硬”的部分,從這一章開始將介紹“軟”的部分,包括作業系統、雲計算、人工智慧等等。這個系列的文章都屬於科普,會由淺入深,希望淺顯易懂。

所以,今天從二進位制開始。

最早的計算機,比如1946年誕生的全世界第一臺通用計算機ENIAC,實際上是採用十進位制進行數字運算的,那為什麼現在的計算機包括一系列有運算功能的電子裝置都採用的是二進位制呢?

首先看一下二進位制是如何發明的。

1679年,德國數學家、哲學家

戈特弗裡德·萊布尼茨出版了《數學的二進位制系統》,闡述了其二進位制思想和二進位制體系。這位老兄是很牛的,不但發明了二進位制還跟牛頓前後獨立發明了微積分。

但是他搞二進位制的靈感是來自於神學,在他看來上帝用七天創世,萬物開始的第一天為“1”,萬物完美的第七天就是“111”,這個二進位制數字正好對應“7”。有了這個念頭,他對二進位制更為著迷,認為宇宙的一切都應該表示為二進位制數。

聽到這裡,大家是不是覺得有點熟悉?

公元前500多年,老子的《道德經》第四十二章中有一句

“道生一,一生二,二生三,三生萬物”,這就是老子的宇宙生成論。而老子的思想又與更早的《易經》和八卦系統有關,八卦中最基礎的符號就是“陰”和“陽”。

特弗裡德·萊布尼茨是瞭解過《易經》和八卦系統,不過這是在1701年,也就是他發明了二進位制之後,才由他的朋友法國

漢學

大師若阿基姆·布韋給介紹的。當時,他斷言:“二進位制乃是具有世界普遍性的、最完美的邏輯語言”。雖然瞭解易經和八卦比較晚,但他老人家由此對中國神學文化產生了極大的興趣,在生命的後期一直在研究,並在去世前幾個月成稿了一份關於中國宗教思想的手稿:《論中國人的自然神學》。

特弗裡德·萊布尼茨發明了二進位制,但在當時並沒有引起廣泛的應用,畢竟二進位制對於人類而言實在太麻煩了,換句話說二進位制在當時並沒有應用場景。

到了19世紀,也就是清朝正在和太平天國PK的時候,英國有一位自學成才的數學家

喬治·布林於1854年出版了一本書《思維規律的研究》。在這本書中,他試圖將人類的邏輯思維歸結為一系列的數學運算。

在書中喬治·布林設計了一種語言,用來描述和操作人類的邏輯語句,從而判斷更復雜的命題是真還是假。他的同事德·摩根為此提出了著名的“德·摩根”定理,即一個等式:

NOT(A OR B)=(NOT A) AND (NOT B)

這個等式翻譯過來就是,如果命題A或命題B都不為真,那麼,命題A和命題B一定都為假。

這是一條看起來很簡單的邏輯判斷,這裡的NOT,OR以及AND代表了三個邏輯符號,分別是“假”、“或”以及“和”。然而,正是運用這最簡單的三個符號,卻能夠將大量更復雜的命題表示和分析出來。

不過,最早以命題邏輯搞推理的並不是19世紀的喬治同學,而是在公元前300多年就有的,正是亞里士多德同學。他在邏輯學上有一個極其重要的“三段論”學說,一個三段論包括大前提、小前提和結論三個部分的論證。

比如:凡是人都會死(大前提);蘇格拉底是人(小前提);所以,蘇格拉底會死(結論)。

我相信喬治·布林同學應該是瞭解三段論的,他進一步利用了數學符號將三段論進行了釋義,為用數字邏輯來表達萬物奠定了基礎。

時間到了這裡,我們有了NOT、OR、AND三種符號來表示事物的邏輯關係,有了真和假,即可以用二進位制“1”和“0”表示邏輯關係的推理結果。好像還差點什麼……

1936年,20歲的勞德·夏農獲得了一份工作,在麻省理工的微分分析機上面做計算設定。這臺微分分析機上有一個由繼電器組成的複雜控制電路,繼電器是一個由電磁鐵控制的機械開關,只有開或者關兩種狀態。

夏農發現可以用組合的繼電器開關來表示喬治·布林提出的邏輯語句,比如將兩個繼電器串聯,只有在兩個都閉合的情況下才會有電流導通。這不就是AND操作麼!

同理,如果把兩個繼電器並聯,只需要開一個電流就可以導通,這不就可以執行OR運算麼!

而繼電器的開和關可以用二進位制的“1”和“0”來表示,也就是說任何邏輯命題的描述都可以用繼電器開關電路系統來實現,用二進位制來表達。

看到這裡大家應該恍然,這就是將邏輯表達和電子操作對應起來了!那麼,就可以用繼電器組之間的連線來進行數字運算和邏輯運算。而採用二進位制進行運算除了我們要處理的資料變長了之外,它的運算要比十進位制簡單得多。具體,大家可以動手算一下,這裡就不浪費篇幅舉例了。

用二進位制進行運算,加法和乘法都可以被簡化為一套非常簡單的規則,可以輕鬆用繼電器來實現。不久繼電器就被速度更快的電子管代替,電子管後來又被電晶體替代,電晶體積體電路也就是我們現在使用的晶片。

1948年,夏農發表了《通訊的數字原理》,在論文中使用bit(位)這個縮略詞來表示二進位制單位“binarydigit”,這篇論文成為資訊理論的基礎。

1951年,第一臺儲存程式計算機EDVAC誕生,它採用了二進位制,是一臺馮·諾依曼結構的計算機,也是真正意義上的現代通用計算機。