跳到正文
IGCSE·Tuition
计算机科学 · 课程

根据给出的例子解释字符编码

题目只给你一个字母的编码,却要你算出其他的,这看起来不公平,直到你看出规律。

本页内容
  1. 怎样根据给出的例子算出编码?
  2. ASCII 和 Unicode 有什么区别?
  3. 示范例子
  4. 要留意的错误
  5. 自我检查
  6. 接下来学什么

计算机存储文字的方法,是给每个字符一个数字,称为字符编码(character code),再把这个数字以二进制存储。ASCII 或 Unicode 这样的字符集,就是把字符和编码对应起来的公认表格。

考试题通常会给出一两个编码,要你求出其他的,把它们转成二进制,或解释为什么需要更大的字符集。这一课属于数字与文字的表示,并依靠二进制与十进制互换。

怎样根据给出的例子算出编码?

字母按字母表顺序存储,所以编码是连续的。如果题目说 A 是 65,那么 B 是 66,C 是 67,依此类推。要求某个字母,数一数它在 A 之后几个位置,再加到 65 上。

字母A 之后的位置编码
A065
B166
C267
G671
O1479

小写字母的想法一样。如果 a 是 97,那么 e 是 97 + 4 = 101。

ASCII 和 Unicode 有什么区别?

ASCII 每个字符用 7 位,所以有 27 = 128 个不同的编码。这足够容纳英文字母、数字、标点和一些控制码,却不够容纳其他文字系统的字符。扩展版本用 8 位,有 256 个编码。

Unicode 每个字符用更多的位,所以能容纳多种语言的字符,还有符号和表情符号。学生在信息里写“你好”就需要 Unicode,因为 ASCII 没有这些字符的编码。Unicode 的前 128 个字符与 ASCII 编码相同,所以旧的文字仍然可用。

代价是存储:每个字符用的位越多,同样字数的文件就越大。

示范例子

题目告诉你,大写字母 A 的 ASCII 编码是 65。

(a) 解码 71 和 79。

71 − 65 = 6,所以这个字母在 A 之后 6 个位置。A、B、C、D、E、F、G:是 G。

79 − 65 = 14,在 A 之后 14 个位置,是 O。这个单词是 GO。

(b) 把 C 的编码写成 8 位二进制。

C 是 65 + 2 = 67。用位值:67 = 64 + 2 + 1,所以二进制是 01000011。检查:64 + 2 + 1 = 67。

(c) 小写字母 a 的编码是 97。小写 c 的编码是多少?为什么它和大写 C 不同?

小写 c 是 97 + 2 = 99,即 01100011(64 + 32 + 2 + 1 = 99)。它和 C(67)不同,因为大写和小写是不同的字符,各自需要自己的编码。相差 97 − 65 = 32。

要留意的错误

常见的失误是把字符和它的数值混为一谈。

题目: 键入字符 ‘7’。如果数字字符 ‘0’ 的编码是 48,存储的编码是多少?

错误答案: 7(或 00000111)。

字符 ‘7’ 是一个符号,有自己的编码:48 + 7 = 55,即 00110111(32 + 16 + 4 + 2 + 1 = 55)。数字 7 和字符 ‘7’ 是两回事,程序存储它们的方式不同。一个好的判断方法是问:这个 7 是要拿来计算,还是只当文字显示。

自我检查

1. 已知 a 是 97,e 的编码是多少?

查看答案

e 在 a 之后 4 个位置,所以 97 + 4 = 101。

2. 已知 A 是 65,求 J 的编码,并写成 7 位二进制。

查看答案

J 是第 10 个字母,在 A 之后 9 个位置:65 + 9 = 74。二进制:74 = 64 + 8 + 2,所以是 1001010(7 位)。检查:64 + 8 + 2 = 74。

3. 为什么通讯软件需要 Unicode,而不能只用 7 位 ASCII?

查看答案

7 位 ASCII 只有 128 个编码,不够容纳中文、泰米尔文或阿拉伯文等其他语言的字母,也不够容纳表情符号。Unicode 每个字符用更多的位,所以能给它们每一个单独的编码。

接下来学什么

下一课位深度与可表示的值会把“有多少个编码”这个问题一般化。你可以在综合练习里检验自己。老师可以在线上一对一 Computer Science 补习中帮你写出简短又准确的解释。

常见问题

什么是字符集(character set)?

字符集是一张大家公认的表,给每个字符(例如字母、数字或符号)一个专属的数字。计算机把这个数字以二进制存储。没有公认的表,两台计算机就无法把同样的位读成同样的文字。

ASCII 和 Unicode 有什么区别?

ASCII 每个字符用 7 位,共 128 个字符,涵盖英文字母、数字和常见符号。Unicode 每个字符用更多的位,所以能容纳多种语言的文字、符号和表情符号。Unicode 开头部分保留了 ASCII 的编码。

为什么大写字母和小写字母的编码不同?

它们是不同的字符,所以需要不同的数字。在 ASCII 中,A 是 65,a 是 97,相差 32。每一对字母都相差 32,所以很容易由大写编码算出小写编码。

需要背整张 ASCII 表吗?

不需要。题目通常会给出起始编码或一张表。只要理解字母按字母表顺序、编码连续,就能由给出的编码算出其他的。请查看你考试年份的大纲,了解 Cambridge 的要求。

资料来源

  1. Cambridge IGCSE Computer Science 0478 课程大纲页面

更新于:

下一步

如果字符编码题让你分不清该数数、转换还是解释,一对一的老师可以告诉你题目要的是哪一种,并和你练习答题的措辞。

一小时付费试听课,按所安排老师确认的收费,RM80 起。 其他费用、时间安排及后续课程,在试听课后由家长与老师直接确认。

补习由家长或监护人安排。用 WhatsApp 把这页发给他们,他们就可以替你咨询。

是家长或监护人?在这里咨询

已通过我们的服务帮助 9,000+ 名学生