我们使用各种不同的编码来为我们自己的交流服务,因为有些编码有时比其他编码更便捷。例如,话语的编码不能存储在纸上,因此,书写的编码就被用来替代话语的编码。如果在黑暗的环境下,而且交流的双方之间有一定的距离,那么通过讲话或者文字来进行秘密的信息交换几平是不可能的,因此,莫尔斯编码就成了一个方便的选择。如果一种编码可以用在其他编码无法取代的地方,那么它就是一种有用的编码。
我们将会看见,各种类型的编码也用在计算机里来存储和传递数字、声音、音乐、图片和电影。计算机不能直接处理人类的编码,因为计算机无法通过与人类的眼睛、耳朵、嘴巴和手指完全相同的方式来接收人类发出的信息。然而,计算机技术的一个最新趋势,已使得我们的个人计算机能够获取、存储、处理和呈现一切用于与人类沟通的信息,无论视觉信息(文字和图片)还是听觉信息(口语、声音和音乐),或两者的相结合(动画和电影)。所有这些类型的信息都需要它们各自的编码,就像人类说话需要一套器官(嘴和耳朵)而写作和阅读需要另一套(手和眼)一样。
甚至前面所列的莫尔斯编码表,其本身就是一种类型的编码。在这个表中,每个字母由一系列的“点”和“划”来表示。然而实际上我们不能发送“点”和“划”,相反,我们发送与“点”和“划”对应的闪烁光。
当使用手电筒发送莫尔斯编码时,迅速地打开和关闭开关代表一个“点”(快闪),让闪光时间保持得相对长一些代表“划”(慢速闪光)。例如在发送字母A时,首先以非常快的速度打开并关闭手电,然后再以稍慢的速度进行一次。在发送下一个字符前,需要暂停一会。在此约定,一个“划”的时长是“点”的3倍。例如,如果一个“点”的时长是1秒钟,那么一个“划”的时长就应当是3秒钟。(在现实中,莫尔斯编码的传输速度远比这要快得多)。接收者看到一个短促的闪烁和一个拖长的闪光后,就知道这是一个A了。
在莫尔斯编码中,“点”和“划”之间的停顿是至关重要的。例如,当发送一个字母A时,在发送的“点”和“划”之间,手电筒要关闭一段时间,这相当于一个点的闪烁时长(如果“点”的时长是1秒钟,那么“点”和“划”之间的停顿也应该是1秒钟)。对于同一个单词中的字母,则通过较长的停顿来分隔,这大约相当于一个“划”的时长(或者说是3秒钟,如果一个“划”的时长就是3秒钟的话)。下图以“hello”的莫尔斯编码
编码隐匿在计算机软硬件背后的语言
4