計算機在何樂禮手中首度接上了電,但電力只是用來驅動繼電器進行計算,靠的是電磁鐵的機械動作,而不是電流本身。因此何樂禮的自動製表機只能算是電力驅動的機械式計算機,仍然不是電子計算機。
計算機要蛻變為現代電腦,必須擺脫機械方式,改用電流本身來做計算。而要做到這一點,首先得放棄大家習以為常的十進位,改用二進位。
本文為系列文章,上一篇請見:人口普查、打孔卡片、IBM——第一台插電的計算機│《電腦簡史》數位時代(一)
二進位早就有囉:易經八卦與培根的加密法
其實二進位的概念很早以前就有了。例如易經共有六十四卦,原本是用數字標記,但到了戰國時代,易經與陰陽思想結合,卦象逐漸改用陰陽兩種符號標記,最晚在東漢時期,就定型為目前所見的線條符號。
易經每一卦由六個「爻」相疊而成,而每一爻不是代表陽的一根長線「—」,就是代表陰的兩根短線「- -」。前三爻構成「上卦」,後三爻構成「下卦」,上下各有八卦,合起來共有 8 x 8 = 64 種變化,便能只用陰陽兩種符號標記六十四個卦象。
雖然易經這套標記系統是二進位沒錯,但是與計算完全無關。正如英國哲學家培根 (Francis Bacon) 也曾為了解決通訊保密的問題——如何讓往返前線的書信內容不為敵軍所悉,而於 1605 年想出一套加密方式。他的方法是將每個英文字母改用五個 a 或 b 取代,例如 A=aaaaa、B=aaaab、C=aaaba。
這套規則其實完全吻合現代二進位的記法,a 相當於 0,b 相當於 1。但同樣地,這只是書寫系統,無關乎計算。率先從計算的角度思考二進位的人是與培根只差一歲,同樣是英國學者的哈里厄特 (Thomas Harriot)。
不為人知的二進位運算首創者:哈里厄特
哈里厄特是位博學家,研究領域橫跨數學、光學、天文學,乃至人類學,有許多重要發現都是他率先提出。例如他於 1602 年就在給克卜勒的信中,提到光學中的折射定律,比斯涅耳 (Willebrord Snellius) 還早二十年。1609 年 7 月,他畫下望遠鏡所見的月球表面,比伽利略早了四個月。他還於 1610 年用望遠鏡觀察到太陽黑子,三年之後伽利略才發表自己所繪的太陽黑子。然而哈里厄特大部分的論文都沒有出版,手稿散落四處,因此直到近代,歷史學家才得知這些光環原本應屬於他。
二進位的計算方式也是其中之一。哈里厄特在 1610 年開始進行一連串的「計算實驗」,用二進位、三進位、四進位、……等等不同方式做四則運算。在他的文稿中,就用 0 與 1 做為二進位制的符號,並且演示一般十進位的數字如何轉換為二進位制,以及如何加減乘除。
然而由於他從未公開發表,這份文稿內容又直到 1951 年才被學者發掘公布,因此儘管他是首創二進位運算體系之人,卻一直不為世人所知,這個光環才落在力推二進位制的萊布尼茲頭上。
彈珠與凹洞:萊布尼茲的二進位計算器
說起來,萊布尼茲提出二進位制也與計算器有關。
第十六章中提到萊布尼茲於 1672 年改良巴斯卡加法器,製作出兩位數乘除的計算器,但因結構問題無法擴充位數,直到二十年後發明步進滾筒,才終於完成真正實用的四則運算器。其實在發明步進滾筒之前,萊布尼茲曾經另闢蹊徑,試圖發明用二進位進行運算的機器。他在 1679 年留下的一篇手稿中,討論用彈珠與凹洞代表二進位的數字,藉由彈珠在凹洞間滾動來進行計算的可行性。
或許是製作上難以實現,萊布尼茲並未著手打造這部機器。他也沒對外發表二進位制的想法,直到 1701 年才寫成一篇論文提交「巴黎皇家科學院」(即法國科學院),卻被秘書長以「看不出二進位有何用處」為由拒絕。
萊布尼茲研究範圍廣泛,原本不以為意,沒想到兩年後他收到一封來自中國的信,赫然發現易經六十四卦的符號,讓他決定再度宣揚二進位制。而這封信的緣由,得從受到康熙皇帝重用的耶穌會傳教士南懷仁 (Ferdinand Verbiest) 說起。
欲創通用文字,必先破解中文?
1678 年(康熙十七年),來到中國已十九年,位居清廷欽天監監正的南懷仁寫信給歐洲教會,請求增派傳教士來中國。當時法國在路易十四的統治下勵精圖治,已成歐陸的霸主,但是在亞洲的勢力卻遠遠不如荷蘭、英國、葡萄牙等國。他得知南懷仁的請求後,認為這正是法國在東方擴展影響力的大好機會,於是在 1684 年選派一批耶穌會修士前往中國。
路易十四特地選任原本就有科學專長的傳教士,好讓他們能受康熙重用,並且讓他們在出發前加入法國科學院。這批傳教士帶著科學儀器與書籍於 1688 年抵達北京,其中白晉 (Joachim Bouvet) 與張誠 (Jean-François Gerbillon) 兩人被留在宮廷,為康熙講授數學與天文曆法。
1697 年,白晉以康熙特使的身分回到法國,希望招攬更多傳教士前往中國。回到巴黎沒幾個月,有人送給白晉一本剛出版的《中國新事》(Novissima Sinica),是由萊布尼茲根據白晉等人寄回法國發表的中國見聞編輯而成。
為什麼萊布尼茲這麼關心中國?原來他一心想要另創一套新的文字,可以在邏輯架構下,明確地陳述數學、科學,以及形上學的概念。而且這套文字必須像數學符號那樣,無論是講英文、法文或德文都能通用,因此必須是表意文字。
當時有一種說法是根據聖經《創世紀篇》中:「原本人類只說一種共同的語言,後來人們離開東方來到示拿地區,企圖建造高可通天的巴別塔,上帝才打亂世人的語言,讓眾人分散到各地,彼此言語不通。」的記載,主張中文就是人類最初的共同語言。
萊布尼茲深受這個說法吸引,加上中國文字看起來又是表意文字,或許了解中文造字原則有助於發明他理想中的通用文字,因此他相當關注這些傳教士從中國捎回來的第一手資料,還主動整理成冊。
易經卦象當幫手,萊布尼茲再推二進位制
白晉讀了萊布尼茲的《中國新事》後,立刻寫信給他表示讚賞,從此兩人展開書信往來,即使白晉於 1699 年返抵北京後仍未中斷。
1701 年 2月,萊布尼茲寫信給白晉討論神學時,提到自己多年前發明的二進位制,從 0 與 1 就能產生所有數字,似乎與上帝憑空創造萬物有異曲同工之妙。白晉一看馬上聯想到易經中的卦象也是由陰陽兩種符號組成,於是在 1701 年 11 月回信給萊布尼茲,告訴他中國的伏羲早在遠古時代就用二進位創造出六十四卦,並隨信附上卦象的版畫。
萊布尼茲於 1703 年 4 月收到這封信後,精神大振,立刻拿出兩年前被拒絕的那篇論文重新修改。他在論文中演示如何用 0 與 1 的二進位制做加減乘除後,花了不少篇幅引用白晉所述,指出二進位制其來有自,四千多年前中國及其科學的創建者伏羲王,就用二進位的方法標誌出蘊含中國哲學思想的六十四個卦象。
萊布尼茲還以圖解說明八卦中的「- -」與「—」若改以 0 與 1 標記,恰恰依序就是數字 0 到 7 的二進位記法。萊布尼茲進一步指出,既然伏羲據稱也是中文的發明者,那麼他在造字時必定也有運用這種數字概念。若能破解中文的造字原則,也許就能創造出他理想中,放諸四法皆準的通用表意文字。
二進位制未見立竿之效,開花結果尚待兩百餘年
這篇題為《論只使用符號 0 和 1 的二進位算術,兼論其用途及它賦予遠古中國伏羲圖的意義》(Explanation Of Binary Arithmetic, Which Uses Only The Characters 0 And 1, With Some Remarks On Its Usefulness, And On The Light It Throws On The Ancient Chinese Figures Of Fuxi) 終於在 1705 年出版的《1703 年皇家科學院年鑑》發表。
然而這篇論文並未引起大太的迴響,因為二進位制在當時的確看不出有何用處,用來計算並不會比傳統的十進位制方便,而想要藉此創造什麼通用表意文字又太遙不可及。還要再過兩百多年,現代電腦的相關技術就緒後,人們才會發現二進位制的神奇妙用。
回頭來看,萊布尼茲宛如預言未來的先知,只因受限於時代的技術隔閡,只能用當時的字句吐出類比的隱喻。他所設想的二進位計算機,正是現代的數位電腦,只不過象徵數字的不是滾動的彈珠,而是流動的電子。他想像中的通用表意文字在某種程度上也算實現了,只不過並非由人類使用,而是全世界的電腦與各式電子產品間的通用語言;而且無需再另創文字,0 與 1 本身就是字母。
不過二進位制只是現代電腦的基本要件之一,在技術就緒之前,還差一塊重要的拼圖……。