自从学会了二进制之后,你的运算部件制造计划又开始缓慢地向前推进。当然,在这个过程中首要的问题还是解决如何方便地用电来表示具体的数。
  
   由于电子专家的权威性,更由于你是个聪明人,在那次和专家分别的时候你已经读懂了他的潜台词:自行其是只会给自己带来烦恼,使用二进制应该是个明智的选择。所以,尽管眼下你还有些摸不着头脑,不知道二进制会给你的运算部件制造计划带来什么,但是这总比没有任何现成的思路强。很快,你终于有了一些头绪。
  

3.1 二进制仙境

   你发现因为二进制数只有0和1两个符号,所以马上想到这可以用开关来实现:当开关断开时,电流被切断,这代表0;当开关接通时,电路中有电流通过,这代表1,如图3.1所示:

图3.1

​ 另外一种可行的方案则与此相反,用开关断开表示1,而开关接通表示0。但是对大多数人(包括我自己)来说,这会有些别扭,不太容易接受,毕竟我们已经习惯了把“没有”看成是0,所以我们不使用这种方案,尽管我们已经说过,它实际上是可行的。
  
   因为在大多数情况下一个真正的二进制数不仅仅只有一个0或者一个1,它可能包含了很多比特,是一连串的0或1,所以要表示一个真正的二进制数,比如101(也就是十进制的5),需要一排开关,每一个开关对应一个比特:

图3.2

这个创意非常新颖,也非常重要,所以我们应该立即将它应用到我们正在努力建造的运算部件中,如图3.3所示。尽管刚看到这幅图时很多人会出现精神恍惚的症状,但是我相信只要稍做解释大家不用吃药就能很快得到缓解,并能非常明白这个图的意思。
  
   图中的灰色方框通常代表一个具有某种功能的电路,在这里它代表的是我们一直努力想要建造的运算部件。之所以这样做,是因为我们正在讨论如何用开关来表示数,这是我们当前关注的焦点。况且,哎呀,现在还不知道它的内部到底如何构造,用一个方框来代表真是最好不过了。
  
   这个运算部件的左边和下面各有5个开关,分别用于输入两个参与运算的二进制数,这意味着它们都是5比特的。就象前面已经讲过的那样,要表示一个二进制数,只需要接通或者断开它们中的一个或多个。那么为什么在这里非得是两个5比特二进制数呢?这没有什么特别的原因,唯一的原因是我这会儿挺高兴,一高兴就用了这么多。如果我不高兴,也许我会用6个、8个甚至更多比特的二进制数。一句话,这只是一个例子。

图3.3

这幅图充分表明了二进制数之所以在电的世界里受到欢迎的原因,我相信你对它也是非常欢迎的。要在以前,你必须制作一大堆电路,为的是生成不同的电压,这还不算,为了知道生成的电压够不够数,你还得拿着电压表一遍一遍地挨个儿测量,而获得这点成就感所付出的却是满头大汗和筋疲力尽。但是现在,你只需要准备一个合适的电源和为数不多的开关就足够了。至于精度,在这里有电表示1,没有电表示零,使用多大的电压都无所谓,只要不会烧坏零件或者电着自己,你认为在这里精度会是个问题吗?
  
   除此之外,还有更令人感到振奋的。在前面的设计过程中,由于忙着解决如何将数送到运算部件里去,我们还没有认真研究过另外一个同样很重要的问题,那就是当运算结果出来之后我们怎样知道它是不是正确,是否是我们真正想要的。现在,由于采用了二进制,这个问题也迎刃而解了。方法出奇地简单,因为运算部件是以二进制的方式工作,它送出来的运算结果自然也是用一排导线表示的二进制数。这样,我们可以把小灯泡接在每一根输出上(让它费点儿电,毕竟人们常说只有付出才能得到回报),以此来显示这些输出的比特到底是0还是1(如图3.4)。

图3.4

​ 这个办法真好,而且特别有意思,它使得结果能以可视的形式直接被我们用眼睛观察到。当某根导线上没有电时,与它相连的灯泡不亮,代表这一比特是0;当灯泡亮时,表明这一比特是1。如果依次记下这些比特并将其换算成十进制,我们就能知道结果到底是几,这真是再好不过了。
  
   看起来二进制与电学还真有着不解之缘,好象它是专门为发明电子计算机而量身定做的。
  
   遗憾的是这两者之间原本就毫无关联。二进制创建的时间大约在1672—1676年,发明它的是德国人莱布尼茨。莱布尼茨是伟大的哲学家和数学家,他不但是数理逻辑的开创者,还是和牛顿齐名的数学家,他们俩相互独立地创建了微积分。当然,这不是他们唯一的共同点,他们生活在同一个时代,都长着喉结,是理所当然的男人,也都很遗憾地一辈子没结婚,当了一辈子老棍。甚至到了晚年,他们也都研究宗教和神学。牛顿聪明而又有些孤僻,敏感多疑、沉闷无趣。有时候在早上醒来,把脚伸出被窝之后,会一动不动地思考上好几个小时。还有一次,他把一根大针插在自己的眼窝里想看看会发生什么,结果说来也怪,什么也没有发生。在物理学方面,他的贡献可以说是前无古人,发现了万有引力,但却无法解释地球围绕太阳运行的动因,于是他认为是上帝给了地球“最初的一击”。莱布尼茨的晚年趋于保守和无所作为,沉迷于神学和唱赞歌。尽管现在公认的是莱布尼茨使用的微积分符号要优于牛顿的,而且一直到今天都在使用,但他们在是谁先发明了微积分的问题上曾经和莱布尼茨进行过长期而又激烈的交锋,甚至波及到整个科学界,使英国和欧洲大陆的科学先驱们在很长一段时间里激烈交锋、势不两立。总之双方都为这事儿很动感情。不过后者看起来颇具高风亮节,曾经高度称赞牛顿的数学成就“比得上在他之前所有成就的总和”。除此之外,他还是个百科全书式的杰出学者,研究领域遍及数学、物理学、力学、逻辑学、生物学、化学、地理学、解剖学、动物学、植物学、气体学、航海学、地质学、语言学、法学、哲学、历史和外交等等(哎呀,光是把它们念一遍就让我喘不过气来)。
  
   刚才说过,这个人一生没有结婚,打了一辈子光棍儿。也许正是因为这样,他才把一生的精力都花在了那些连数起来都让人觉得费劲的众多学科上。好在在这方面好象没有人愿意效仿他,否则科学发展史就成了名副其实的“断代史”了。除此之外,他还是个不折不扣的中国迷,一生花了大量的时间研究中国的文化,据说还一度希望加入中国国籍,但是我天朝上国的皇帝最终还是拒绝了他的请求。
  
   后来,不知怎么地,有一段时间他居然认真地研究起了二进制。当时中国和欧洲交往比较频繁,在中国有很多传教士,当然有一些是他的朋友,他们给他带去了中国的典籍和各种杂货,其中最让他感到惊讶的是太极八卦图,当时他高兴得不得了,因为这张图印证了他的想法,给了他启示和灵感。
  
   作为一种符号,“0”和“1”对于二进制来说并不是最主要的。假如历史在前进的过程中打了个喷嚏,或者打了个盹儿——总之如果它的发展稍微出现点儿偏差,那么也许人们会用“×”和“○”或者“—”和“~”来书写二进制数,而不是现在的“0”和“1”。
  
   最早尝试仅仅用两种不同的符号来表达一种思想的是中国的太极八卦,它使用了两个相似,但并不相同的符号“—”和“–”来进行组合:

图3.5

    太极八卦图是一个圆,它的中间是一个阴阳鱼(头大尾小,还有眼睛),外围是八个边,代表着八个方位。

   在八卦图中,使用了两种符号:“—”和“–”,这使它不但看起来非常优美,而且如哲学般神秘,使人浮想联翩。如果把前者看成“1”而后者看成“0”,则你可以在这个图中找到从000到111这八个二进制数。但是在八卦的理论里并不止这八个数,因为“无极生太极,太极生两仪,两仪生四象,四象生八卦,八卦生六十四卦”。这意味着,中国古人即使目光再短浅,至少也知道可以用这两种符号表达至少64种组合,或者64个数。
  
   但是八卦并不是数制,古代人发明它更多地是希望用它来表达对宇宙万物的看法。而且他们也看不出有什么必要采这种方法来数天上有多少颗星星,或者皇宫里有多少财产——说实在的,既使是现在也没有必要。但是他们显然知道用这两个符号可以变化出无数种不同的组合来,就象无数个二进制数那样。在这一点上(显然也是二进制理论中最重要的一点),假如冥冥之中注定必须要由莱布尼茨来发明二进制的话,他显然出生得太晚了。
  
   尽管莱布尼茨发明了二进制,但这并非是由于他认识到二进制对于计算机来说是多么重要。事实上,尽管他的确曾经热衷于研究如何制造计算机,而且也确实发明了一台机械计算机,但那台机器却根本不使用二进制工作,也和二进制毫不相干。具有讽刺意味的是,他发明的二进制现在却支配着全世界不计其数的计算机的运行,如果他能够活着看到这一切,也许他会怀着复杂的心情重重地拍一下自己的大腿。历史上有很多伟大的发明和发现究其初衷并不是因为它“有用”,更多的时候纯粹是好奇和偶然的产物(当然,客观地说,每一项发明都散发着辛酸和汗水的味道),甚至有时候连发明它们的人对它们的应用前景也并不看好,甚至因为担心这些发明具有不良的社会教化作用而忧心忡忡。
  
   多好的二进制、多好的设计啊!晚上躺在床上你都在想:我怎么会有这么好的设计呢!感动得你都想哭。当然,这可能有点儿夸张,不过事实求是地说,这一次的设计的确已经无可挑剔了,至少从技术难度上来说是完全可行的。所以在图纸出来之后,你就开始着手构造这个运算部件内部的电路了。

  ※
  ※
  ※ 第四章 计算机史前的电磁之光
  ※
  ※

    人们常说,人类社会的发展是一部历史。这种说法当然是有道理的,不过这部历史一定会包含很多分卷,记载着我们在各个方面引以为豪的、了不起的成就。比如文学史将会记载我们在文学创作方面的辉煌成就;物理史将会描述那些奇形怪状的仪器设备,以及用它们所揭示的最激动人心的奥秘;化学史将展示我们挖空心思弄出来的瓶瓶罐罐,告诉后人世界如何在一片叮叮当当的响声中被彻底改变。当然,这部历史也会有对我们这个社会群体进行反思的章节,比如环保史将记载我们对整个自然环境的破坏,使大家明白大气污染和气候的变化并不单纯是因为我们养的牛羊太多,会放大量的屁①,更重要的原因在于,我们自私自利,盲目扩张,自绝后路。

  ——————————————————————————————

    这真是一部又多又厚的历史,涉及到我们人类生活的方方面面,好好研究一下是有益的,甚至是很有意思的。比如,有人研究了人类以前生活的历史,觉得现代人的生理机能已经大不如昔。要搁以前,“就是石头,人类的肠胃也可以把它化解成面粉。”但是现在,我们吃的东西越来越精细,肠胃功能开始退化,变得越来越脆弱,“一根生猛的黄瓜就有可能把原来胜似万里长城的肠胃打得落花流水一泻如注。”——有一个叫曾德凤的朋友在他的文章里如是写道。说到这里,哎呀,真是对不起,我们这本书是讲什么来着?——计算机。所以,当你翻动这部历史的时候,当然会找到计算机分卷。不过,这个分卷的历史有两个显著特点:

   第一,尽管从几千年前我们就已经开始书写它,但是它在二十世纪之前的部分一直是干巴巴的,陈旧而平淡,反而最近几十年的历史却丰富翔实,墨迹未干;
  
   第二,最近几十年我们在计算机方面的研究的确可以用突飞猛进来形容,但这并非是人类的脑容量突然有所增加,或者突然变聪明的结果。相反,你会发现,它之所以会取得革命性的进步,得益于人类在电磁学、数学、逻辑学等领域里取得的最新成果。
  
   了解到这些,我们不由得陡生好奇之心,一定要回到过去,来重温科技史上那些有趣的事件和激动人心的瞬间,搞清楚都是什么能够让我们用上最好的电脑,并通过电脑阅读新闻、撰写自鸣得意的文章、打印漂亮的表格、以最快的速度和几千公里外的朋友交流、查找武昌鱼的菜谱和脚气的疗法,以及阅读网络诗人笔下狐狸的芳香和巧克力的彷徨。当然,除了这些好处之外,你还一定有机会中上计算机病毒,理解什么才叫气急败坏和疯狂。
  
   那么,让我们先从电磁学的历史开始吧。