计算机在何乐礼手中首度接上了电,但电力只是用来驱动继电器进行计算,靠的是电磁铁的机械动作,而不是电流本身。因此何乐礼的自动制表机只能算是电力驱动的机械式计算机,仍然不是电子计算机。
计算机要蜕变为现代电脑,必须摆脱机械方式,改用电流本身来做计算。而要做到这一点,首先得放弃大家习以为常的十进位,改用二进位。
二进位早就有囉:易经八卦与培根的加密法
其实二进位的概念很早以前就有了。例如易经共有六十四卦,原本是用数字标记,但到了战国时代,易经与阴阳思想结合,卦象逐渐改用阴阳两种符号标记,最晚在东汉时期,就定型为目前所见的线条符号。
易经每一卦由六个「爻」相叠而成,而每一爻不是代表阳的一根长线「—」,就是代表阴的两根短线「- -」。前三爻构成「上卦」,后三爻构成「下卦」,上下各有八卦,合起来共有 8 x 8 = 64 种变化,便能只用阴阳两种符号标记六十四个卦象。
伏羲先天六十四卦(1701年白晋寄给莱布尼茨的图)。图:WIKI虽然易经这套标记系统是二进位没错,但是与计算完全无关。正如英国哲学家培根 (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 年才被学者发掘公布,因此尽管他是首创二进位运算体系之人,却一直不为世人所知,这个光环才落在力推二进位制的莱布尼兹头上。
弹珠与凹洞:莱布尼兹的二进位计算器
莱布尼兹于 1695 年的肖像。图:WIKI说起来,莱布尼兹提出二进位制也与计算器有关。
第十六章中提到莱布尼兹于 1672 年改良巴斯卡加法器, ... 出两位数乘除的计算器,但因结构问题无法扩充位数,直到二十年后发明步进滚筒,才终于完成真正实用的四则运算器。其实在发明步进滚筒之前,莱布尼兹曾经另辟蹊径,试图发明用二进位进行运算的机器。他在 1679 年留下的一篇手稿中,讨论用弹珠与凹洞代表二进位的数字,借由弹珠在凹洞间滚动来进行计算的可行性。
或许是 ... 上难以实现,莱布尼兹并未着手打造这部机器。他也没对外发表二进位制的想法,直到 1701 年才写成一篇论文提交「巴黎皇家科学院」(即法国科学院),却被秘书长以「看不出二进位有何用处」为由拒绝。
莱布尼兹研究范围广泛,原本不以为意,没想到两年后他收到一封来自中国的信,赫然发现易经六十四卦的符号,让他决定再度宣扬二进位制。而这封信的缘由,得从受到康熙皇帝重用的耶稣会传教士南怀仁 (Ferdinand Verbiest) 说起。
欲创通用文字,必先破解中文?
1678 年(康熙十七年),来到中国已十九年,位居清廷钦天监监正的南怀仁写信给欧洲教会,请求增派传教士来中国。当时法国在路易十四的统治下励精图治,已成欧陆的霸主,但是在亚洲的势力却远远不如荷兰、英国、葡萄牙等国。他得知南怀仁的请求后,认为这正是法国在东方扩展影响力的大好机会,于是在 1684 年选派一批耶稣会修士前往中国。
路易十四特地选任原本就有科学专长的传教士,好让他们能受康熙重用,并且让他们在出发前加入法国科学院。这批传教士带着科学仪器与书籍于 1688 年抵达北京,其中白晋 (Joachim Bouvet) 与张诚 (Jean-François Gerbillon) 两人被留在宫廷,为康熙讲授数学与天文历法。
1697 年,白晋以康熙特使的身分回到法国,希望招揽更多传教士前往中国。回到巴黎没几个月,有人送给白晋一本刚出版的《中国新事》(Novissima Sinica),是由莱布尼兹根据白晋等人寄回法国发表的中国见闻编辑而成。
法国传教士白晋著清朝官服。图:WIKI为什么莱布尼兹这么关心中国?原来他一心想要另创一套新的文字,可以在逻辑架构下,明确地陈述数学、科学,以及形上学的概念。而且这套文字必须像数学符号那样,无论是讲英文、法文或德文都能通用,因此必须是表意文字。
当时有一种说法是根据圣经《创世纪篇》中:「原本人类只说一种共同的语言,后来人们离开东方来到示拿地区,企图建造高可通天的巴别塔,上帝才打乱世人的语言,让众人分散到各地,彼此言语不通。」的记载,主张中文就是人类最初的共同语言。
莱布尼兹深受这个说法吸引,加上中国文字看起来又是表意文字,或许了解中文造字原则有助于发明他理想中的通用文字,因此他相当关注这些传教士从中国捎回来的之一手资料,还主动整理成册。
易经卦象当帮手,莱布尼兹再推二进位制
白晋读了莱布尼兹的《中国新事》后,立刻写信给他表示赞赏,从此两人展开书信往来,即使白晋于 1699 年返抵北京后仍未中断。
1701 年 2月,莱布尼兹写信给白晋讨论神学时,提到自己多年前发明的二进位制,从 0 与 1 就能产生所有数字,似乎与上帝凭空创造万物有异曲同工之妙。白晋一看马上联想到易经中的卦象也是由阴阳两种符号组成,于是在 1701 年 11 月回信给莱布尼兹,告诉他中国的伏羲早在远古时代就用二进位创造出六十四卦,并随信附上卦象的版画。
莱布尼兹于 1703 年 4 月收到这封信后,精神大振,立刻拿出两年前被拒绝的那篇论文重新修改。他在论文中演示如何用 0 与 1 的二进位制做加减乘除后,花了不少篇幅引用白晋所述,指出二进位制其来有自,四千多年前中国及其科学的创建者伏羲王,就用二进位的 ... 标志出蕴含中国哲学思想的六十四个卦象。
莱布尼兹还以图解说明八卦中的「- -」与「—」若改以 0 与 1 标记,恰恰依序就是数字 0 到 7 的二进位记法。莱布尼兹进一步指出,既然伏羲据称也是中文的发明者,那么他在造字时必定也有运用这种数字概念。若能破解中文的造字原则,也许就能创造出他理想中,放诸四法皆准的通用表意文字。
二进位制未见立竿之效,开花结果尚待两百余年
莱布尼兹于 1703 年所著之《论只使用符号0和1的二进位算术》。图:WIKI这篇题为《论只使用符号 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 本身就是字母。
不过二进位制只是现代电脑的基本要件之一,在技术就绪之前,还差一块重要的拼图……。