Morse 码

假设你有个住在街道对面的好友,你们经常在窗前用肢体语言交流,每每因睡前熄灯戛然而止。

怎么办?打电话?且不说自己的房间里有没有电话,即使有,讲话的声音也会被隔壁听到。

好在还有手电筒!它非常安静,不会从门缝里渗出光来。手电筒能说人话吗?当然,灯光可以画字母呀, O 画一圈, I 画一竖。只是不太精确,笔画一多,眼花缭乱。

此时你想起曾经看过的两部电影:一部中几个水手在海上用闪烁的灯光互发信号,另一部中间谍用镜子把阳光反射给另一个间谍。或许这就是解决方案。

所以你先将每个字母与灯光闪烁的次数对应起来, A 闪烁 1 次, B 闪烁 2 次, C 闪烁 3 次,依此类推, Z 闪烁 26 次。单词 BAD 闪烁 2 次、 1 次、 4 次,字母之间稍作停顿,防止好友误认为是闪烁 7 次的 G 。单词之间停顿得更久一些。

貌似不错!好消息是,不必挥舞手电筒了!坏消息是,一句 “ How are you? ” 共需要 131 次闪烁,还不计标点符号!何况你也没想好标点符号如何表达。

其实你已经接近标准答案了!那就是 Morse code !不过你得重新学习字母的写法。 Morse code 有两种闪烁,短闪烁和长闪烁,或称短亮和长亮,复杂了点。但是更加高效。那句 “ How are you? ” 包括问号现在仅需 32 次闪烁了。短亮和长亮的文本形式分别是 ._

尽管 Morse code 与计算机毫无关联,但熟悉 code 的性质是深入理解计算机的前提。本书中 code 一词通称人与机器之间的信息传递系统,统一翻译成“代码”,简称“码”。代码不是谜语,它必须便于交流。在《百年孤独》一书的开头, Gabriel Garcia Marquez 写道:“这个世界上很多事物都没有称呼,为了明确指定,必须给它们起名。”我们给事物起名往往看起来很随意,似乎没有理由说猫不能名叫”狗”,狗不能名叫”猫”。

人类语言是一种代码,它通过口头表达或书面表达,两种方式之间有着强对应关系。残障人士所使用的代码相对特殊,聋哑人用手语,盲人用盲文。我们时不时切换代码,因为当前某种代码更加适用。口头表达需要记录时,切换成书面表达。黑暗之中无法口头表达和书面表达时,切换成 Morse 码。只要一种代码能做到其它代码做不到的事,它就是实用的。计算机用不同的代码来存储、传输声音和图片。上文的 Morse 码表也是一种代码,字母相当于一系列点和横。

然而实际上我们发送不了点和横,只能用手电筒的短亮和长亮替代。例如发送 A ,依次开、关、等、开、等、关。通常长亮的时间是短亮的 3 倍,如果短亮 1 秒(实际应用中该时间短得多),那么长亮 3 秒。接收方看到一次短亮和一次长亮,就知道这是 A 。

点横之间的停顿至关重要。仍以 A 为例,手电筒在短亮和长亮之间停顿约一次短亮,如果短亮 1 秒,那么停顿 1 秒。字母之间约一次长亮,停顿 3 秒。单词之间约两次长亮,停顿 6 秒,如 “ hi there ”:

Morse 码总时长并不固定,由发送方的执行速度和接收方的记忆速度决定。手速快的人发送长亮可能和手速慢的人发送短亮相当。刚开始阅读 Morse 码时有点困难,需要一两个字符来归纳。

乍一看 Morse 码与键盘布局一样是随机的,事实并非如此。更常用的字母,如 E 和 T ,被分配到更短的代码,而 Q 和 Z 等不常用字母的代码更长。

几乎人人都对 Morse 码略知一二,比如国际遇险求救信号 SOS “三个点、三条横、三个点”。 SOS 不是任何词语的缩写,它只是一条易于记住的 Morse 码的序列。

第二次世界大战期间, British Broadcasting Corporation (BBC) 的广播以 Ludwig van Beethoven 第五交响曲 (bah, bah, bah, BahMMMM) 作为片头。 Ludwig 在作曲时一定没想到,这一段“点点点横”刚巧对应了 Morse 码中的字母 V ,即胜利 (Victory) 。

Morse 码不区分字母大小写,支持数字,支持标点符号,甚至支持重音字母。 Morse 码常常被赋予特殊用途,如 SOS ,可以马不停蹄地连续发送。

天哪! Morse 码简直是为你量身定制的!别忘了手电筒除滑块开关外还有一个按钮开关,更顺手。经过不断练习,大约能达到每分钟 5~10 个单词的速度,尽管比语音慢得多(语音每分钟 100 个单词左右),但够用了。

当你和好友都记住 Morse 码后,不妨试着用它代替日常的语音。为了更快的速度,点读作 dih (最后一个点读作 dit ), 横读作 dah ,日常的语音由此简化成 2 种基本发音。

关键词是 2 。 2 能组合出任何信息。