欢迎来到数据表示法!
你有没有想过,电脑本质上只是一堆微小的开关,它是如何呈现高清电影,或记录你在游戏中的高分呢?这一切都要归功于数据表示法(Data Representation)。在本章中,我们将学习电脑如何将人类的数字和文字世界,转换成它们自己的语言:二进制(Binary)。
别担心,如果你觉得数字有点吓人——我们会把所有内容拆解成简单的步骤。把它想象成学习一种秘密代码吧!
1. 三种数制
为了理解电脑,我们需要认识三种特定的“语言”或数制:
A. 十进制 (Denary / Base-10)
这是我们每天使用的“人类”系统(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)。我们使用 10 个数字是因为我们有 10 根手指!
B. 二进制 (Binary / Base-2)
这是“电脑”系统。它只使用两个数字:0 和 1。
类比:想象一个电灯开关。它只能是关闭(0)或开启(1)。电脑是由数十亿个这种微小的开关组成的。
C. 十六进制 (Hexadecimal / Base-16)
这个系统使用 16 个符号。由于我们在 9 之后数字就不够用了,所以我们使用字母:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A (10), B (11), C (12), D (13), E (14), F (15)。
为什么要用十六进制? 它比二进制短得多,对人类来说更容易阅读且不容易出错。
快速回顾:
- 十进制: 人类使用 (0-9)
- 二进制: 电脑使用 (0-1)
- 十六进制: 人类方便使用的速记法 (0-F)
2. 数制转换
能够进行数制转换是 GCE O-Level 计算机科学的核心技能。让我们一步步来学习如何操作。
二进制转十进制
要将二进制转换为十进制,我们使用位值表(Place Value Table)。在二进制中,每向左移动一位,数值就会加倍。
范例:将 10110010 转换为十进制
1. 画出表格(从右边的 1 开始,向左移动时数值加倍):
2. 将下方对应数字为 '1' 的数值加起来:
\( 128 + 32 + 16 + 2 = 178 \)
十进制转二进制
使用减法法(Subtraction Method)。
口诀:“找出能容纳的最大值”。
范例:将 75 转换为二进制
1. 128 能放入 75 吗?不能 (0)
2. 64 能放入 75 吗?能!(1)。余数:\( 75 - 64 = 11 \)
3. 32 能放入 11 吗?不能 (0)
4. 16 能放入 11 吗?不能 (0)
5. 8 能放入 11 吗?能!(1)。余数:\( 11 - 8 = 3 \)
6. 4 能放入 3 吗?不能 (0)
7. 2 能放入 3 吗?能!(1)。余数:\( 3 - 2 = 1 \)
8. 1 能放入 1 吗?能!(1)。余数:0
结果:01001011
十六进制转二进制
这是最简单的!每个十六进制位数正好等于 4 个二进制位(bits)(称为一个半字节 nibble)。
范例:将 2A 转换为二进制
1. 将 '2' 转换为 4 位二进制:0010
2. 将 'A' (即 10) 转换为 4 位二进制:1010
3. 合并在一起:00101010
关键提示: 做二进制转换时一定要使用表格!这能防止简单的加法错误。
3. 二补数 (Two's Complement - 负数表示法)
一般的二进制只能表示正数。为了表示负数,我们使用二补数(Two's Complement)。
刚开始觉得复杂别担心;只要遵循“反转并加 1”的规则即可!
如何将正数转换为负数(例如:-5):
1. 先写出该正数的二进制版本(使用 8 位元):
\( 5 = 00000101 \)
2. 反转(Flip)所有位(0 变 1,1 变 0):
\( 11111010 \)
3. 将结果加 1:
\( 11111010 + 1 = 11111011 \)
结果:11111011 代表 -5。
为什么要这样做?
在二补数中,最高位(Most Significant Bit,最左边的那一位)充当负号。在 8 位系统中,第一栏实际上是 -128 而不是 +128。
快速回顾:
1. 写出正数的二进制。
2. 反转位。
3. 加 1。
4. 文字表示法 (ASCII)
电脑不知道字母 'A' 是什么,它们只认识数字。因此,我们使用一本“代码本”叫做 ASCII (美国标准信息交换码)。
8 位扩展 ASCII
在 8 位扩展 ASCII 中,每个字符(字母、数字或符号)都被分配一个 0 到 255 之间的唯一数字。
运作方式:
- 当你在键盘上按下 'A' 时,电脑看到的是十进制数字 65。
- 然后它将 65 转换为二进制:01000001。
- 这串二进制代码就是储存在内存中的内容。
你知道吗?大写 'A' (65) 和小写 'a' (97) 之间的差值正好是 32。这使得电脑只需改变一个位,就能轻松在大小写之间切换!
文字表示法总结:
- 字符使用 ASCII 标准对应到数字。
- 8 位编码意味着我们可以表示 \( 2^8 \) (256) 种不同的字符。
- 这包括英文字母、标点符号和特殊符号。
章节总结 - 核心重点
1. 二进制 是电脑使用的基于 2 的系统(由 0 和 1 组成)。
2. 十六进制 是基于 16 的系统,使用它是因为它比长串的二进制更容易让人阅读和书写。
3. 数制转换 最好使用位值表(1, 2, 4, 8, 16, 32, 64, 128)来完成。
4. 二补数 是在二进制中表示负数的方法。记住:反转并加 1。
5. ASCII 是标准“代码”,让电脑能将文字表示为二进制数字。
要避免的常见错误: 在做二补数时,许多学生会忘记在最后加 1。最后一步一定要再三检查!