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

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

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

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

要想回答这个问题就需要我们从长计议了。

当考虑用比特来表示文本的时候,切忌好高骛远。我们经常会看到书页上,或报刊和杂志的栏目上所有的内容被整齐地组织在一起。所有的段落都划分为宽度相等的文本行,但我们要注意,这种排版的形式永远只是文本之外的事物。当曾在某个杂志上细细品味过的一个故事,几年后与我们在另外一本书中重逢时,我们回忆起的往往是故事本身而不是文本的排版,没有人会因为行与行间距的不同而把它们当成两个故事。

我极力想阐述一个重要的观点,那就是文本与其印刷在纸上时采用的二维排版格式是两码事。充分发挥想象力,将文本看成是一维的由字母、数字和标点符号组成的数据流吧。当然,有时为了标明一句话的开始和结尾,还需要一些额外的编码。

还是先前所描述的例子,曾在某个杂志上细细品味过的一个故事,几年后出现在另外一本书中,但是文章的字体发生了变化,这算是一个问题吗?当年的杂志上是这样印刷的:

$$
\mathsf { C a l l \ m e \ l s h m a e l . }
$$

而现在书中的写法变成了下面这样:

Call me Ishmael.

这些区别是我们所在意的吗?答案往往是否定的。字体改变了文本的表现形式,但故事本身的内容并没有因此而改变。字体是可以变来变去的。但这并无大碍。

还有一种简化问题的方法:我们可以总是使用毫无修饰的文本。没有斜体、粗体、下画线、颜色、空心体、上标、下标以及音标,同样的,这里没有元音字母标识等符号,只有赤条条的拉丁字母,这些字母组成了英语中99%的文本。

在先前对莫尔斯码和布莱叶盲文的学习中,我们了解了如何将字母表中的字符以二进制的形式表现出来。这些系统在适合的场合很好用,但要想用到计算机中却是难上加难。就拿莫尔斯码来说,它是变量自适应长度(Variable-Width)编码:常用字符的编码较短,而不常用字符的编码较长。这样的编码非常适合电报系统,但并不适用于计算机。另外,莫尔斯码并不区分字母的大小写。

布莱叶盲文编码使用固定宽度,非常适合计算机使用。每一个字符对应着6比特的编码,并且用到了转义(Escape)码对大小写进行了区分。转义码用来表明下一个字符为大写。这也就是说,每个大写字母都需要两组编码来表示。布莱叶盲文中用移位(Shift)码表示数字:移位码后紧跟的编码都被看做数字,直到遇到下一个移位码,此时系统又将后面的内容当做字母。

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

308