乐读文学

编码:隐匿在计算机软硬件背后的语言

乐读文学 > 科普学习 > 编码:隐匿在计算机软硬件背后的语言

第1章 电 筒 密 谈

书籍名:《编码:隐匿在计算机软硬件背后的语言》    作者:Charles Petzold


假若你才  10岁,你的好朋友与你临街而住,而且你们卧室的窗户面对着面  。每天晚上,  当父母像平常一样很早催你上床睡觉时,你可能还想与好朋友交流思想、发现、小秘密、传  闻、笑话和梦想,没有人可以责备你,毕竟  ,渴望交流是大多数人的天性。

当你们卧室还亮着灯时,你和你的好朋友可以临窗舞动手臂、打手势或以身体语言来交  流思想,但复杂一些的交流就有些困难了。而且一旦父母宣布“熄灯”,交流也就无法继续进  行了。

如何联系呢?用电话吗?  10岁的小孩子屋里有电话吗?即使有,你们的谈话可能被偷听。  如果家里的电脑通过电话线联了网,它可能会提供无声的帮助,不过很不幸,它也不会在你  的房间里。

你和朋友采用的方法是用手电筒。所有的人都知道手电筒是为孩子们藏在被窝里看书而  发明的,它也适合在黑暗中用来交流。它无声无息,且光的方向性很好,不会从卧室的门缝  中泄露而使家人起疑。

用手电筒的光可以交谈吗?这值得一试。一年级你就学过在纸上写字母和单词,把这种  方法运用到手电筒上看起来也合情合理。你所需做的就是临窗而站,用光画出字母。画字母  ‘O’,就打开电筒,在空中画个圈,然后关上开关;字母‘  I’则是画竖直的一笔。但是你很  快发现这种方法行不通,当你注视来去飞舞的光柱时,会发现在脑海中将它们组合起来不是  件容易的事,这些光划成的圈圈杠杠太不准确了。

也许你曾经看过一部电影,影片中两个水手隔海用闪烁的光传递消息。在另一部电影中,  一个间谍用镜子反射阳光向一间屋子中被俘获的同伙发送讯息。这就给了你启发,你起先设  计一种简单的交流方法,使字母表中的每个字母与一定数目的闪烁相对应。  A闪一下,  B闪两  下,C闪三下,如此递推,  Z就闪烁  26下。BAD这个词由字母间有间隔的两闪、一闪、四闪组  成,这样你不会误以为它是闪七下的字母  G了。词间的停顿则比字母间的停顿时间稍长一些。

这看起来很有希望,采用这种方法的优点是你不需要在空中挥舞手电简,只需对准方向  按开关就行了;缺点是你试图发送的第一个消息(“How  are  you?”  )就需要  131次闪烁,更  糟的是,你忘了定义标点符号,所以无法表示句尾的问号了。

这离问题的解决已经很近了,你想别人以前肯定也遇到过类似的问题,你解决它的思想  一定是正确的。为了解决问题,白天的图书馆之行使你发现了神奇的摩尔斯电码(morse  code),  这正是你想要的,即使你不得不重新学习如何“写”字母表中的字母。

以下就是区别:在你发明的体系中,每个字母是一定数目的闪烁,从闪烁一下的  A到闪烁  26的Z;而在摩尔斯电码中,有长短两种闪烁,当然,这会使摩尔斯电码更为复杂,但它在实  际应用中却被证实是更有效的。那句“  How  are  you?”现在仅需  32次而不是  131次闪烁,而  且这还包含了问号。

在讨论摩尔斯电码的工作原理时,人们并不说“长闪烁”、“短闪烁”,他们使用“点

(dot)”和“划(  dash)”,因为这样易于在印刷品上表示。在摩尔斯电码中,字母表中的每一



个字母与一个点划序列相对应,正如在下表中你所看到的:



尽管摩尔斯电码与计算机毫不相关,但熟悉它的本质却对深入了解计算机内部语言和软  硬件的内部结构有很大的帮助。

在本书中,编码或代码(  code)通常指一种在人和机器之间进行信息转换的系统(体系)。  换句话说,编码便是交流。有时我们将编码看成是密码  (机密),其实大多数编码并不是的。大  多数的编码都需要被很好地理解,因为它们是人类交流的基础。

在《百年孤独》的一书的开篇,马尔克斯回忆了一个时代,那时“世界一片混沌,许多  事物没有名字。为了加以区别才给事物各个命名。”这些名字都是随意的,没有什么原因说明  为什么不把猫称为狗或不把狗称为猫。可以说英语词汇就是一种编码。

我们用嘴发出声音组成单词,这些词可以为那些听得到我们声音,理解我们所用语言的  人所听懂,我们称这种编码为“口头语言”或“语音”。对写在纸上(或凿在石头上、刻在木  头上或通过比划写在空气中)的词,还有一种编码方式,那就是我们在印刷的报刊,杂志和  书籍上看到的字符,称之为“书面语言”或“文本”。在许多语言中,语音和文本间有很强的  联系。例如在英语中,字母或一组字母与一定的读音相对应。

手势语言的发明帮助了聋哑人进行面对面的交流。这是一种用手和胳膊的动作组合来表  达词语中的单个字母、整个词及其基本概念的语言。对盲人来说,他们可以使用布莱叶盲文

(Braille)。这种文字使用凸起的点代表字母,字母串和单词。当谈话内容要被迅速地记录下  来时,缩写和速记是很有用的。

人们在相互沟通时使用了各种不同的编码,因为在不同的应用场合,其中的一些较其他  的更为简便。例如,语言不能在纸上存储,所以使用了文字;语言、文字不适合用来在黑夜  中安静地传递消息,故摩尔斯电码是一个方便的替代品。只要一种编码可以适用于其他编码  所不能适用的场合,它就是一种有用的编码。

以后将看到,计算机中使用了不同的编码来传递和存储数字、声音、音乐、图像和视频

(电影)。计算机不能直接处理人类世界的编码,因为它不能模拟人类的眼睛、鼻子、嘴和手  指来接收信息。尽管这些年来计算机的发展趋势使我们的桌上电脑具有捕获、存储、处理和  提供人类交流中所使用的各种信息的能,而且不论这些信息是视觉的(文字和图片)、听觉的

(语言、声音及音乐)还是两者的混合(动画和电影)。所有这些信息都要求使用它们自己的  编码方式,正如交谈需要使用人的某些器官(嘴和耳朵),而书写和阅读则需要使用另外一些