跳到正文
IGCSE·Tuition
计算机科学 · 练习

数字与文字的表示:附解析的综合练习

分别会每一种转换是一回事,在一次作答中来回切换又是另一回事。

这十二道原创题涵盖二进制与十进制、十六进制、带溢出的二进制加法、字符编码、位深度和一个简短的追踪题。题目由易到难,除非另有说明,二进制数都是 8 位。

先在纸上写出你的做法,再打开答案。每题标记对或错,再用最后的部分找出该复习哪一课。

你可以在 Python 推理沙盒检查转换,在伪代码追踪训练器追踪循环。这套练习属于数字与文字的表示。

题目

1.(容易) 把 00101101 转成十进制。

查看答案

有 1 的列:32、8、4、1。总和:32 + 8 + 4 + 1 = 45。

2.(容易) 把 150 转成 8 位二进制。

查看答案

128 放得下(剩 22)。64 不行。32 不行。16 放得下(剩 6)。8 不行。4 放得下(剩 2)。2 放得下(剩 0)。1 不行。位是 1 0 0 1 0 1 1 0,所以是 10010110。检查:128 + 16 + 4 + 2 = 150。

3.(容易) 6 位最大能存的十进制数是多少?

查看答案

6 位有 26 = 64 种组合,从 0 开始,所以最大是 64 − 1 = 63。检查:111111 = 32 + 16 + 8 + 4 + 2 + 1 = 63。

4.(容易至中等) 把 10101110 转成十六进制,再转成十进制。

查看答案

分组:1010 和 1110。1010 = 10 = A,1110 = 14 = E。十六进制:AE。十进制:10 × 16 + 14 = 160 + 14 = 174。用二进制检查:128 + 32 + 8 + 4 + 2 = 174。

5.(中等) 把十六进制 5D 转成二进制和十进制。

查看答案

5 = 0101,D = 13 = 1101,所以二进制是 01011101。十进制:5 × 16 + 13 = 80 + 13 = 93。检查:64 + 16 + 8 + 4 + 1 = 93。

6.(中等) 计算 00110011 加 01011101,给出 8 位结果,并用十进制检查。

查看答案

先做十进制检查:00110011 = 32 + 16 + 2 + 1 = 51,01011101 = 64 + 16 + 8 + 4 + 1 = 93。预期:144。

从右边逐列:第 0 列:1 + 1 = 0 进 1。第 1 列:1 + 0 + 1 = 0 进 1。第 2 列:0 + 1 + 1 = 0 进 1。第 3 列:0 + 1 + 1 = 0 进 1。第 4 列:1 + 1 + 1 = 1 进 1。第 5 列:1 + 0 + 1 = 0 进 1。第 6 列:0 + 1 + 1 = 0 进 1。第 7 列:0 + 0 + 1 = 1。

结果:10010000 = 128 + 16 = 144。吻合,而且没有向外的进位,所以没有溢出。

7.(中等) 计算 11110000 加 00010000,说明发生了什么。

查看答案

240 + 16 = 256。第 0 到 3 列都是 0 + 0 = 0。第 4 列:1 + 1 = 0 进 1。第 5、6、7 列:每列 1 + 0 + 1 = 0 进 1,第 7 列向外进 1。

8 位结果是 00000000,并带有向外的进位。结果溢出:256 对 8 位来说太大(最大 255),所以存储的 0 是错的。

8.(中等) 在 ASCII 中,A 的编码是 65。解码 72 69 76 80。

查看答案

72 − 65 = 7,是 H。69 − 65 = 4,是 E。76 − 65 = 11,是 L。80 − 65 = 15,是 P。把 A 算作位置 0:H 是第 8 个字母(位置 7),E 是第 5 个(位置 4),L 是第 12 个(位置 11),P 是第 16 个(位置 15)。单词是 HELP。

9.(中等) 解释为什么支持中文字符的通讯软件不能只用 7 位 ASCII。

查看答案

7 位 ASCII 有 27 = 128 个编码,涵盖英文字母、数字和一些符号,却没有中文字符。像 Unicode 这样更大的字符集,每个字符用更多的位,所以有足够的编码。代价是每个字符占用更多存储空间。

10.(中等至较难) 一个游戏的像素调色板用了 20 种不同的绿色。至少需要多大的颜色深度?

查看答案

24 = 16 小于 20。25 = 32 不小于 20。最小颜色深度是 5 位。

11.(较难) 一幅图像的颜色深度是 8 位。深度增加 2 位。可能的颜色数量增加多少倍?新的数量是多少?

查看答案

原来:28 = 256 种颜色。新深度:10 位,所以 210 = 1024 种颜色。每多一位数量翻倍,多两位就是乘以 2 × 2 = 4。检查:256 × 4 = 1024。

12.(较难) 追踪这段伪代码。输出是什么?它是 2 的几次方?

Value ← 1
FOR Count ← 1 TO 5
   Value ← Value * 2
NEXT Count
OUTPUT Value
查看答案
Count循环体之后的 Value
开始1
12
24
38
416
532

输出是 32,即 25。这也说明 5 位可以表示 32 个不同的值。

如果你做错了

题号可能原因复习
1、2、3位值从错误的一端读起,或漏了一列二进制与十进制互换
4、5分组错误,或混淆 A 到 F把十六进制当作简短写法
6、7丢了进位,或没有说明溢出二进制加法与溢出
8、9从错误的字母开始数,或解释时没有提到“更多的位”解释字符编码
10、11、12用乘法而不是 2 的幂位深度与可表示的值

把错误简短地记在错题记录与重测队列里,几天后再做一道新版本的同类题。如果错误一再重复,线上一对一 Computer Science 补习能让老师在你做题时直接看到你的步骤。

资料来源

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

更新于:

下一步

如果同一类题目总是让你丢分,一对一的老师可以和你一起做几道,判断问题出在方法、计算还是答题措辞。

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

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

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

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