
上QQ阅读APP看书,第一时间看更新
2.5.4 符号的编码
“您刚才说到‘编码’真的唬住我了。到底什么是‘编码’呢?”克里克里问西西船长。
“不要被这个词给唬住了。”西西船长给大家解释道,“如果我们规定用某个数值来表示某个符号,就说这个数值是这个符号的一个编码。”
因为归根结底计算机是靠数学运算来完成所有的事情。所以计算机处理数值是最便利的。如果要处理符号,比如“abcd”或者“+-*/#¥%”,又或者中文“甲乙丙丁”,就需要将每个符号都对应到一个不同的数值后才能处理。
如何对应呢?人类的祖先们已经想好了。按精心设计的规律,把字符和对应的数值列举到一张表格中,称之为编码表。编码表有好几种,如把所有常用的英文字符都对应到数值的ASCII码表,如表2-5所示。
如果还要表示更多的字符,比如汉字,则需要更大规模、更为复杂的编码表。例如Unicode编码,如图2-6所示。
“关于编码说来话长啊!感兴趣的话,大家自己去查阅一下资料吧!”西西船长最后指出一点,“虽然字符的编码是数值,但是却不能直接拿字符和数值进行比较。因为不同类型的数据没法比!”
>>> 'a'>65 Traceback (most recent call last): File "<pyshell#4>", line 1, in <module> 'a'>65 TypeError: '>' not supported between instances of 'str' and 'int'
毫无悬念,报错了:“>”符号不支持字符串和整型运算。
【练一练】
(1)请将派森号的3位船员克里克里、菲菲兔和洛克威尔按姓名大小顺序排序。
(2)请问中文字符串的排序是不是按拼音顺序?