追光者-亚博88体育

追光者

文章来源:基础软件国家工程研究中心 徐普 软件发展部 孔维一  |  发布时间:2018-12-24  |  【】 【】

  

      大家好,我是小徐。我最好的朋友是小程。我们两人的家在一条街的两边。事实上,我们的卧室窗户也彼此相对。每当夜幕降临,妈妈便早早地催促我关灯睡觉。但我仍然精神抖擞,想跟好朋友交谈分享。没错,交流本就是人的天性。

      灯开着的话,我可以跟小程用肢体语言交流。然而灯关了,我和影子便没有区别。寝室里没有电脑也没有手机,我只能等月圆之夜跟小程对话了吗?不,我有一个绝妙的主意——我买了一个手电筒。

      我想,我可以用光的闪烁来表示字。这有点像电影里大雾弥漫时的水手用灯的亮灭来发送信号。比如,我可以先用闪3次表示“我要开始说话了”,接着用闪1次表示“a”,闪2次表示“b”,闪26次表示“z”。我想告诉小程“bad”这个单词,我就可以依次闪3次、2次、1次、4次。怎么不让小程误解我是要说“bad”还是要说“g”呢?可以在每个字间加个小停顿,在单词之间可以加个大停顿。还有一件事需要做,就是把这些约定都告诉小明。

     这样交流太累了,能不能改进一下?经过一番思考,我又买了五个同一型号的手电筒,从左到右摆成一排。现在,不同的手电筒被我赋予了不同的意义:最右端的亮时,用来告诉小程我要讲话了;其他五个的亮灭被我用来表示字母表。

     表示字母表?对,我把字母表和有意义的停顿用“密码”写了下来。在下表中,我用0表示灭,1表示亮:


a

00001

b

00010

c

00011

d

00100

e

00101

f

00110

g

00111

h

01000

i

01001

j

01010

k

01011

l

01100

m

01101

n

01110

o

01111

p

10000

q

10001

r

10010

s

10011

t

10100

u

10101

v

10110

w

10111

x

11000

y

11001

z

11010

间隔

00000

空格

11111

11011

11100

 

 

 

 

     这样一来,我想说“a good day”,就可以用手电筒依次排布出下列形式:
00001   00000   11111   00000   00111   00000   01111   00000   01111   00000
a                         空格                    g                         o                         o
00100   00000   11111   00000   00100   00000   00001   00000   11001   00000
d                         空格                    d                         a                         y
然后关闭所有手电筒。

      我把这“密码表”告诉了小程,小程也买了六个手电筒,现在我们可以互相交流了。你看那夜空中一闪一闪的星星,也许隐藏着与我和小程两人相似的秘密。

      现在让我们严肃一点,说清楚我们到底做了什么。我跟小程两个人想交换信息。我们想把语言文字的信息用光信号来传递,即信息的载体是光。我们借用光的变化来传递不同的信息。光的变化是由手电筒的亮灭控制的,这可以称之为手电筒的状态。亮灭是两种状态,一组状态按照顺序排列起来,表达特有的意义,这就叫做编码。我跟小明约定使用相同的编码来交换信息,可以说我们两人用了同一种信息交换协议。信息交换离不开编码与协议。

    下面是人见人爱的提问环节:
    1. 中文字用亮和灭两种状态应该如何编码呢?
    2. 英文字母算不算是编码呢?英文单词算不算是编码呢?
    3. 盲文是怎么编码的呢?
    4. 中文是一种协议吗?是一种标准吗?协议和标准是一个意思吗?
    5. 必须有至少两种状态才能编码吗?只有一种状态不行吗?

网站地图