奎克的藏经阁 · 原书印刷页

编码 隐匿在计算机软硬件背后的语言 · 第 2 页

PDF 物理页索引 18 · 编码隐匿在计算机软硬件背后的语言

书名
编码 隐匿在计算机软硬件背后的语言
作者
未记录
印刷页
2
PDF 物理页
18(从 0 开始)
章节
编码隐匿在计算机软硬件背后的语言
UUID
38270854-596f-4a26-8183-db8c968c6020
来源类型
original_book
页面 SHA-256
dc23928e5a990d31cc1243e6bcd57f6e3f096ec9367125589529b81429f57766

或许大家都曾经在电影里看到这样的情节,两个水手在海上通过灯的亮灭来互相发送信号。而在另一部电影里,一个间谍转动一面镜子将太阳光反射到另一个房间里,从而向被俘的同伙传递信息。或许那正是解决问题的办法。如此一来,你就可以发明一种简单的技术。在这个方案里,字符表里的每个字符对应一连串的手电筒闪烁。“A”是闪一次,“B”是闪两次,“C”是闪三次,依此类推,“Z”就是闪26次。单词BAD可以用闪2次,闪1次,闪4次这样的一个组合来表示,而且在字符之间设置的小停顿使这个单词不至于被误认为是闪7次的字母“G”。另外,单词之间停顿可以稍长些。

这似乎很有希望,采用这种方案的好处是你不必在空中比划手电筒了,只要对准方向和按开关就行了。但是这种方案也有一个不足,那就是如果你想发送的第一个消息是“How are you?”,那么你将总计需要让手电筒闪131次!而且,这还是忽略了标点符号的,你还没有设计闪多少次来对应一个问号。

但是这已经离答案更近一些了。我们能够肯定的是,在此之前一定有人也遇到过类似的问题,而你解决这个问题的思路也是非常正确的。等到了白天,跑一趟图书馆,查查资料,你发现了一个被称为莫尔斯电码(MorseCode)的伟大发明。这正是你想找的,尽管你现在必须重新学习如何去“写”字母表里的字母。

它们的不同之处在于:在你发明的系统里,字母表里的每个字母就是用一定数目的闪光表示的,闪1下为“A”,闪26下为“Z”。而在莫尔斯电码里,则有两种闪烁短闪和长闪。当然这使得莫尔斯电码更加复杂,但是在实际应用里它被证明是更为有效的。句子“How are you?”现在只要闪32下(包含一些短闪和一些长闪),而不再是131下,而且这其中还包括了一个代表问号的编码。

当问及莫尔斯电码是如何工作的时候,人们并不会谈论“短闪”与“长闪”。相反,他们使用“点(dot)”和“划(dash)”,因为这是在打印纸上显示编码的一个便利方法。在莫尔斯电码里,字母表里的每个字母都与一个点划序列相对应,正如下表所示。

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

2