《穿越计算机的迷雾》
第25节

作者: sholber
收藏本书TXT下载
  虽然每个人都会做加法,但是有时候,拥有这样的本领也不容易,常常需要付出遭受两面夹击、担惊受怕的代价。我二哥就是这样,经常让我妈拿着棍子往学校里撵,到了学校之后还得象受惊的兔子一样生怕遭到老师训斥。就这样年复一年,不知道是啥时候,他居然也就会了(哎呀,现在说我二哥的坏话,希望回去以后他不会拿着棍子撵我才好)。


日期:2009-02-15 19:16:25

  4.2 二进制加法
  尽管讨论十进制加法的话题对我们来说显得很轻松,但是我们不应该停留在这里,因为它毕竟不是这一章的重点。现在,让我们接着讨论另外一个更重要的话题,它关系着我们的加法机能不能顺利制造出来。
  也许你已经知道,二进制也可以象十进制那样进行各种数学运算。如果你事先并不了解这一点,我想你也不会感到惊讶,这是意料之中的事儿。要想把两个二进制数加起来得到它们的和,比如111+110,这个过程有点儿象十进制加法,首先要做的是把它们对齐,就象图4.2所示的那样。

日期:2009-02-15 19:18:48

  通过前面第一节的介绍,我们知道在做十进制加法的过程中有两点是比较重要的:一是必须掌握加法口诀;二是需要考虑进位。很不巧,如果要做二进制加法的话,这两点同样很重要,简直是避不开。
  加法口诀的作用是让你念念有词地得出结果。前面已经说过,十进制加法有百十来条口诀,的确不少。之所以有这么多,是因为十进制有0到9这十个基本数字,这百十来条口诀就是用这十个基本数字反来复去组合而成的。
  相比之下,二进制加法的口诀会比较简洁,因为它只有两个基本数字:0和1。所以,口诀的第一句是:
  0加0等于0。
  这是显而易见的,理解它说明你的脑子还够用。同样显而易见的是另外两句:

  0加1等于1;
  1加0等于1。
  0和1可以有4种相加的组合形式,前面已经有了3种,还剩下最后一种,即“1”和“1”相加。
  前面的三个口诀非常象,但决不是十进制加法。尽管站在十进制的角度来看它们毫无疑问也是正确的。不过,对于这最后一个“1加1”来说,二进制和十进制就迥然不同了:在二进制里,1+1=10。但是加法口诀有自己的要求,那就是相加的结果只能是一个数字,如果超过了一个,和十进制口诀一样,必须依靠进位来进行描述。所以就有:

  1加1等于0,进1。
  是不是又少又简单?“哎呀,真好!”你可能会发出这样的感叹,就象我们办公室里的大姐在电视上看到了费翔一样①(他是歌星嘛)。是的,相比十进制加法运算的一大堆规则来说,二进制真正的魅力就体现在这里。
  ============================================================
  注① 大姐们都是很有感染力的人,甚至有时候简直就是哲人。就拿上回来说,看到我们喝酒出了洋相,在旁边一个字一个字不紧不慢地说道:“喝酒不闹事儿,纯属酒没劲儿。”
  ============================================================
  现在再回到图4.2所示的那个例子上,让我们来看看在一个实际的二进制加法中,这些口诀是如何被应用的,如图4.3。

日期:2009-02-15 19:27:45

  与十进制加法一样,二进制的加法也是从最右边的一列开始,从右往左逐列进行的:
  1.右边第一列是“1”和“0”相加。这正好对应于口诀“1加0等于1”,所以这一列的和是1;
  2.右边第二列的和是0。因为口诀上说了,“1加1等于0,进1”。由于产生了进位,我们在紧挨着它的左边一列的下边写一个小小的“1”。俗话说得好,好记性不如烂笔头。
  3.现在轮到右边第三列了。依据口诀“1加1等于0,进1”,我们可以得到结果“0”,同时产生了一个进位(我们在下一列上写个小小的“1”)。这还没完,因为还有从后面(也就是第2步)来的进位。因此还需要再用口诀“0加1等于1”把这这一列的结果“0”和后面来的进位“1”加起来,这才是本列最终的结果,也就是1;
  4.现在计算第四列——哎呀,我说错了,根本就没有这一列。尽管如此,从右边一列来的进位也不能不管呀!那就把它挪到横线的下边,作为新的一列——第四列。

  至此,我们已经得出111+110=1101。由于到现在为止你对二进制还不是特别熟悉,
  所以有可能对这个计算结果心里没底,不知道是不是正确。不过这也好办,我们可以把111、110和1101这三个二进制数分别转换成十进制,看看它们能不能对得上。真令人高兴,转换完成之后是7+6=13,瞧,绝对没有问题。当然,这只是一个普通的例子。如果你不知道这种方法是否真的有效,或者想加深印象,可以多找一些二进制数来反复做一做加法练习,看看它们在结果上是不是和十进制加法一样。


日期:2009-02-16 17:02:52

  “何处不逢”兄弟所论,极其高妙。不过从一开始,我的想法是:一,迷雾外,准备内容部分。这一点和你一样。而且,这一部分内容也在为“收”做准备,做铺垫。一台计算机的书,如果从头到尾都是夸夸其谈,落不到细微之处,就成了官样文章。反之,用大篇幅把一个小小的加法器讲清楚了,讲得通俗易懂,读者在接受之后,心里有踏实感,也很容易使他们举一反三。这时候,你再一“收”,尽管其它电脑部件并没有讲得非常细致入微,他们也能很好地理解。

  第二部分,迷雾内,原理核心内容。兄弟你可能觉得我要大讲特讲了。但是正好相反,在这方面核心的内容只占一章,即《自动计算》(尚未写完,你知道,写一本书其实很难,第一章我曾经重写过20遍,还不是一般的修改,是完全重写)。当然,寄存器和指令系统,包括寻址方式也是要讲到的。其它硬件原理都分散到第三部分“穿越迷雾”里了。收得很突然,但我尽量使它自然,使读者容易接受。

  第三部分,穿越迷雾,可以讲你所罗列的内容。但是以操作系统和软件为主,你所说的内容都零散地穿插在内了。
  兄弟说话风趣,语言幽默,在这方面可以继续碰碰,反正还是写。

日期:2009-02-16 18:13:49

  主要是考虑读者,多从读者那方面去想想,不过也不意味着随大流。比如一听说网络语言时兴,就满书全是网络语言;一听说给儿童写书要使用儿童化的语言,就把书名改成《计算机啊,计算机》。至于市面上的书,我倒是考虑得少,除了查资料之外,很少顾及。至于原因,你也是知道的。

日期:2009-02-16 22:32:53

  4.3 全加器
  在学习了二进加法运算之后,大家可能会感觉很愉快、很满足(通常吃饱了之后也是这种感觉,这证明知识的确也是食粮)。高兴之余,你可能想在别人——比如你的父亲面前卖弄一下你的学问,向他演示101+11=1000。看到你拥有这样的非凡才能,他肯定表现得非常激动:“揍死你这个不成器的东西,竟然连加法都不会做了!”①这也难怪,大人们很少有懂得二进制的。如果不是为了研制计算机,我们干嘛要研究二进制,和它纠缠在一起?

  总地说来,做加法这件事还是非常简单和稀松平常的。据我所知,哎呀,甚至有一些特别聪明的小狗都会。这不是瞎说,是前几天我在电视上看到的。小狗的主人告诉它几加几,然后小狗就用叫声来回答结果。比如主人问它三加五等于几,它就汪、汪、汪地叫八声。印象中,它好象还可以算乘法。不过估计它算不了太大的数,比如1000+9000。就算它真能汪汪叫一万声,它的主人也决不会同意,毕竟累死狗不偿命。

  尽管我们可以训练小狗做加法,但是要让一台机器来完成同样的事情却困难得多。不过好在我们人类勇于探索,而且知道如何把一件困难的事情分解成简单的部分来加以解决。精确地说,科学发现是在寻找规律,发明则是在利用已经发现的规律。要想制造出这台加法机器,让机器自动干加法这活儿,所要做的首先就是发现二进制加法中蕴藏的某种规律。

  据观察,所有的加法运算过程都有一个共同的特点,那就是都从右往左一列一列进行:从最右边那列开始,相加,出得结果,然后再用相同的方法计算另一列……,就这样一直进行下去,直到最左边那一列。说到这些,哎呀,不好意思,我说的简直都是废话,这些你都知道,是不是?
  一开始是最右边那一列,这是每次我们做加法时的起点。在这一列上,只有两个数字,它们分别是来自于加数和被加数的两个比特。为了便于讲解,我们姑且称之为a0和b0,如图4.4所示

日期:2009-02-16 22:34:32

请按 Ctrl+D 将本页加入书签
提意见或您需要哪些图书的全集整理?
上一节目录下一节
【网站提示】 读者如发现作品内容与法律抵触之处,请向本站举报。 非常感谢您对易读的支持!举报
© CopyRight 2011 yiread.com 易读所有作品由自动化设备收集于互联网.作品各种权益与责任归原作者所有.