9. 二进制数

9. 二进制数

  托尼.奥兰多在他的1973年所写的一首歌中这样请求他挚爱的人:“请在橡树上系上一条黄丝带”。他没有要求爱人进行详细的解释或者进行过多的讨论。他不想听到任何的“如果”、“而且”和“但是”。尽管这首歌是根据那些可能在真实生活中发生过的复杂感情和动人的往事所写的,但这个男人真正想要的答案仅仅是一个简单的“是”或“不是”。他希望在树上系一条黄丝带来表示“是的,尽管你做了很多错事,并且入狱三年,但是我依然希望你可以回来和 我共同生活。”他希望用树上没有系黄丝带来表示:“你连停在这里都别想。”

  这是两个界线分明、相互排斥的答案。托尼.奥兰多并没有唱“如果你想考虑一下,就系半条黄色丝带吧”或者“如果你不爱我,但是我们依然是好朋友,就请系上蓝色丝带吧。”相反,他把问题简化得非常简单。

 还有几个和系黄色丝带具有同样效果的例子(但可能无法用在诗里):选择一种交通标志放在院子外面,来表示“请进”或“此路不通”。

 或者用窗子里的一盏灯的亮灭来表示:“关闭”或“打开”。

  如果这就是你想说的,你可以选择多种方法来表示“是”或者“不是”。你不需要用一句话、一个单词甚至一个字母来表达。你所需要的只是一个比特,也就是只需要一个0或1即可。

  就如前面章节所提到的,十进制与其他数字系统相比并没有什么不同,只是我们通常使用它来计数。很明显,我们使用十进制数字系统是因为我们有十个手指。如果我们将数字系统建成八进制系统(如果我们是卡通人物)或四进制数字系统(如果我们是龙虾),甚至二进制系统(如果我们是海豚),也是合乎情理的。

  但是二进制数字系统存在一点特殊性。这个特殊性在于它是人们所能得到的最简单的数字系统。 二进制系统只有两个数字--0和1。如果想进一步简化这个数字系统,就只好把1去掉吧,最后我分们就剩下的就是一个数字0了,但仅一个0是做不了任何事情的。

  单词“bit (比特)”被创造出来代表英文“binary digit”,它的确是和计算机有关词语中最可爱的一个。当然,这个词也有它一般的意义:“一小部分,程度很低或数量很少”。这个意义很贴切,因为1比特---一个二进制数字位---确实是一个非常小的量。

  通常一个新的词语出现的时候,它都会有自己新的意义。比特这个词也是这样的。1比特的意义并不是仅仅海豚用来计数的二进制数字所包含的意义。在计算机时代,比特被看作是组成信息块的基本单位。

  这是一个大胆的表明。当然,二进制数不是传达信息的唯一方法。字母、单词、莫尔斯码、布莱叶盲文和十进制数制都可以表达信息。关键在于,比特所传递的信息量极小。1比特是可能存在的最小的信息量。任何小于1比特的内容都根本算不上是信息。由于1比特表示的是可能存在的最小信息量,那么复杂的一些信息就可以用多位二进制数制来表达(我们说比特传递的信息量“小”,并不是说它传送的信息量不重要。事实上,黄丝带对于它相关的两个人来说是一个非常重要的信息)。

  “听,我的孩子,你们很快就能听到保罗.里威尔(Paul Revere)午夜的蹄声。” 亨利.沃兹沃思.朗福罗(Henry Wadsworth Longfellow)写到。尽管他在描述保罗.里威尔是如何通知美国人英国殖民者入侵的消息时不一定与史实完全一致,然而他确实提供了一个耐人寻味的利用二进制传递重要信息的例子:

  他对他的朋友说:“今晚如果从镇里来的英国军队通过海路或陆路入侵,你就在北教堂钟搂的拱门处高高挂起提灯作为特殊信号---一盏灯表示英军从陆路进军,两盏灯则表示英军从海路入侵.......”

  总结起来就是说,保罗.里威尔的朋友有两盏灯。如果英国军队从陆路进犯,他会在教堂钟楼上挂起一盏提灯。如果英军从海路进军,他会将两盏提灯都在教堂钟楼上挂起。

  然而,朗福罗并没有明确地提到所在的可能性。他留下了第三种可能的情况没有说,那就是英军根本没有入侵。朗福罗已经暗示,如果是这样的话可以不通过不在教堂钟楼上挂提灯来表示。

  假设两盏灯实际上是永久固定在教堂钟楼上的。通常不会被点亮。

  每一盏灯都代表一个比特。点亮的提灯表示的比特值是1;未点亮的提灯表示比特值为0 。托尼.奥兰多已经向我们证明了传送只有两种可能性的信息只需要一个比特。如果保罗.里威尔只需要被告知英军将要入侵(而不管他们将从何处入侵),一盏灯就足够了。这盏灯亮起表示入侵,不亮则表示今夜无事。

  要表达包含三种可能性的消息,则还需要再加一盏提灯。如果有了第二盏提灯,这两盏提灯在一起可以表达四种可能的信息:

  00=英军今晚不会入侵

  01=英军正由陆路入侵

  10=英军正由陆路入侵

  11=英军正由海路入侵

  保罗.里威尔将这三种可能性用两盏灯来传送的做法事实上是相当老道的。用通信原理论的术语来说,他运用了“冗余”(redundancy)来抵消噪声的影响。通信理论中,噪声(noise)是指影响通信效果的所有事物。电话线上的静电就是一个影响电话通信的鲜明例子。然而,电话通信通常都能成功,因为即使存在噪声,语音中仍存在大量的冗余。我们要理解对方的意思,并不需要听清对方所说的每个词的每个音节。

  在上述例子中,噪声是指黑夜中暗淡的光线以及保罗.里威尔距钟楼的距离,这两个因素都能让他分辨不出点亮的是哪盏提灯。以下就是朗福罗诗中至关重要的一段:

  哦!他站在与钟楼等高的位置观察,

  一丝摇曳的微光接下来,有一盏灯亮了!

  他跳上马鞍,调转马头,

  徘徊、凝视,直到看清所有的灯,

  钟楼上的第二盏灯也亮起来!

那当然不是说保罗.里威尔正在分辨到底是哪盏灯先亮的问题。

  这里最本质的概念就是,信息是指多个可能性中的一种,例如,当我们与一个人交谈的时候,我们所说的每个字都是对字典中所有字的一个选择,如果我们将所有字典中的字从1到351482编号,我们可以用数字准确地进行交谈,而无须使用单词。(当然,交谈双方都需要一本字典,字典上标注着每个数字所代表的是什么字,并且他们还需要遥足够的耐心。)

  换句话说,所有可以被转换成两种或多种可能性的选择的信息,都可以用比特来表示。不用说,人类有很多形式的交流是不能用对非此即彼的可能性的选择来表示的,但这些交流形式对我们人类的生存又是至关重要的。这就是人类为什么没有和计算机建立起浪漫关系的原因(无论如何,我们都希望这种情况不会发生)。如果你无法用语言、图画或者声音来表达某种事物的事候,你就也无法将这个信息用比特的形式来编码。当然,你也不会想去这么做。

  竖起拇指或者不竖起拇指就是一个比特的信息。两个人是否竖起拇指---就如影评人罗杰.艾伯特刚去世不久的珍妮.西斯科对新影片给出他们的评价时那样---传达了两个比特的信息(我们且不论他们对电影做了什么评价;我们所关心的只是他们的拇指)。这里的四种可能性、可以用两个比特位来表示:

  00= 他们都不喜欢这部电影

  01=西斯科讨厌它,艾伯特喜欢它

  10=西斯科喜欢它,艾伯特讨厌它

  11=他们都喜欢这部电影

第一个比特位表示西斯科的意见,为0表示西斯科讨厌这部电影,为1表示喜欢。同样的,第二位表示艾伯特的意见。

  因此,如果你的朋友问你:“对于电影Impolite Encounter,西斯科和艾伯特的评论如何?”你不必回答“西斯科翘起了大拇指,艾伯特没有。”或者“西斯科喜欢这部电影,而艾伯特不喜欢。”你可以简短地回答:“一零。”只要你的朋友知道哪一位表示西斯科的意见,哪一位表示艾伯特的意见,并且知道1表示竖起拇指,0表示没有,你的回答就会很容易理解。但是,前提是你和你的朋友都知道编码的含义。

  我们也查以一开始就声明值为1的比特位表示没有竖起拇指,值为0的比特位表示竖起了,这可能有点违反常规。通常我们会认为1的比特表示赞成,而值为0的比特表示反对,但是实际上这是可以任意调换的。只要每个使用代码的人知道0和1都具体表示什么意义即可。

  某一位或者一连串比特位所表示的意义通常是和上下文有关的。系在一颗橡树上的黄色丝带可能仅仅是对于把它系在那里的人和希望在那里看到它的人才有意义。改变丝带的颜色、系丝带的树或者系丝带的日期,它就可能成为一块没有任何意义的破布。同样,想从西斯科和艾伯特的手势中得到有用的信息,我们至少需要知道他们讨论的是那部电影。

  如果你保留了一份西斯科和艾伯特对于电影的评价和投影的评价和结果,你就可以在反映他意见的比特信息中再添加一个比特位,来表示你自己的看法。添加第三个比特位将使得其代表的信息可能性扩展到8种。

原文地址:https://www.cnblogs.com/666638zhangqiang/p/11192671.html