欢迎来到数字系统!
欢迎来到 AQA 计算机科学课程中最基础的章节之一!在我们了解计算机如何存储照片、播放音乐或执行游戏之前,必须先理解它们所使用的“语言”。虽然我们是用十根手指来数数,但计算机是用电力来运作的——这完全是另一回事。如果一开始觉得这里“数学味”太重,不用担心,我们会把它拆解成简单易懂的步骤。
1. 数字分类
在计算机科学中,我们不只是单纯地看“数字”,而是会根据它们的用途将其分组。你可以把它们想象成计算机里不同的“文件夹”。
自然数 (Natural Numbers) \( (\mathbb{N}) \)
这是最基本的“计数”数字。AQA 将其定义为从零开始。
• 集合: \( \{0, 1, 2, 3, \dots\} \)
• 例子: 房间里的人数或文件夹中的文件数量。
整数 (Integer Numbers) \( (\mathbb{Z}) \)
这是完整的数字,可以是正数、负数或零。
• 集合: \( \{\dots, -2, -1, 0, 1, 2, \dots\} \)
• 例子: 银行账户余额(如果你花太多钱,余额可能是负数!)或温度读数。
有理数 (Rational Numbers) \( (\mathbb{Q}) \)
可以把“有理数”联想到“比例”(Ratio)。这些数字可以写成分数 \( (a/b) \)。这包含了所有整数,因为 \( 7 \) 其实就是 \( 7/1 \)。
• 例子: \( 1/2 \)、 \( 0.75 \) 或 \( -3/4 \)。
无理数 (Irrational Numbers)
这些数字无法写成简单的分数。它们的小数部分会无限延伸且没有规律。
• 例子: \( \sqrt{2} \) 或 \( \pi \) (圆周率)。
• 常见错误: 许多学生认为 \( 3.14 \) 是无理数,但它实际上是有限小数(有理数)。真正的 \( \pi \) 是永远不会结束的!
实数 (Real Numbers) \( (\mathbb{R}) \)
这是“主集合”,包含了上述所有数字(自然数、整数、有理数和无理数)。实数代表现实世界中任何可能的测量值。
序数 (Ordinal Numbers)
这些不作运算之用,而是用来表示位置或排名。
• 例子: 如果你有一组列表 \( \{A, B, C\} \),那么 'A' 是第 1 个对象,'B' 是第 2 个,以此类推。
• 记忆小撇步: Ordinal (序数) = Order (顺序)。
快速复习:计数与测量
• 使用自然数进行计数(例如 5 个苹果)。
• 使用实数进行测量(例如一条绳子长 5.23 厘米)。
重点总结: 不同的任务需要不同的数字类型。如果你只需要计数,\( \mathbb{N} \) 就足够了;如果你需要测量宇宙,就需要 \( \mathbb{R} \)。
2. 数字进位 (Number Bases)
“进位”告诉我们该数字系统中有多少个可用数字。
十进制 (Decimal, Base 10)
我们日常使用的系统,使用 10 个数字:0, 1, 2, 3, 4, 5, 6, 7, 8, 9。
二进制 (Binary, Base 2)
计算机的“母语”。它只使用 2 个数字:0 和 1。计算机之所以使用这种方式,是因为它们是由微小的开关组成,这些开关要么是关闭 (OFF, 0),要么是开启 (ON, 1)。
十六进制 (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)。
• 为什么要用它? 二进制对人类来说很难阅读(例如 10101110)。十六进制是一种缩写,让二进制更容易管理。一个十六进制数字刚好代表四个二进制位!
你知道吗? 你每天在网页设计中都会看到十六进制!HTML 颜色代码(如 #FF5733)就是使用十六进制来告诉计算机该显示多少红、绿和蓝色。
3. 转换步骤
二进制转十进制
1. 写下该二进制数。
2. 从右边开始,在上方写下“位权”(2 的幂次):128, 64, 32, 16, 8, 4, 2, 1。
3. 将下方对应为 '1' 的位权加总。
• 例子: \( 1011_2 \)
• 位权:(8, 4, 2, 1) -> \( 8 + 0 + 2 + 1 = 11_{10} \)。
十进制转二进制
1. 使用“余数法”(不断除以 2)或“减法”(减去最大的 2 的幂次)。
• 以 13 为例的减法:
• 可以减去 8 吗?可以(剩下 5)。写下 1。
• 可以减去 4 吗?可以(剩下 1)。写下 1。
• 可以减去 2 吗?不行。写下 0。
• 可以减去 1 吗?可以(剩下 0)。写下 1。
• 结果: \( 1101_2 \)。
二进制转十六进制
1. 从右边开始,将二进制数每 4 个位分成一组。
2. 将每组 4 个位转换为对应的十六进制数字。
• 例子: \( 10111110_2 \)
• 分组: \( 1011 \) | \( 1110 \)
• \( 1011 = 11 \) (即 B)
• \( 1110 = 14 \) (即 E)
• 结果: \( BE_{16} \)。
重点总结: 为标示所使用的进位系统,请使用下标,例如 \( 101_{10} \) (十进制) 与 \( 101_2 \) (二进制)。
4. 信息单位
我们如何衡量“数据”?
位 (Bit) 与 字节 (Byte)
• 位 (Bit): 最小单位,单个 0 或 1。
• 字节 (Byte): 8 个位为一组。
• \( 2^n \) 规则: 使用 \( n \) 个位,你可以表示 \( 2^n \) 种不同的数值。
• 例子: 3 个位可以表示 \( 2^3 = 8 \) 种不同的数值(从 000 到 111)。
单位前缀陷阱:二进制 vs 十进制
这是很多学生丢分的地方!衡量大量数据的方法有两种。
十进制前缀(10 的幂次)
这是你在物理课或营销存储设备时会看到的。
• kilo (k): \( 10^3 = 1,000 \)
• mega (M): \( 10^6 = 1,000,000 \)
• giga (G): \( 10^9 = 1,000,000,000 \)
• tera (T): \( 10^{12} = 1,000,000,000,000 \)
二进制前缀(2 的幂次)
计算机科学家更倾向使用这些,因为它们符合内存实际的运作方式。
• kibi (Ki): \( 2^{10} = 1,024 \)
• mebi (Mi): \( 2^{20} = 1,048,576 \)
• gibi (Gi): \( 2^{30} = 1,073,741,824 \)
• tebi (Ti): \( 2^{40} = 1,099,511,627,776 \)
记忆技巧: 如果名称中含有“i”(例如 kibi),它就属于 binary (二进制) 系统(2 的幂次)!
快速复习:
• 1 Kilobyte (kB) = 1,000 bytes。
• 1 Kibibyte (KiB) = 1,024 bytes。
• 历史上,人们在实际指 1,024 时也会说“kilobyte”。但在考试中,请务必精确区分!
重点总结: 计算机使用二进制前缀,因为它们是建立在 2 的幂次之上。使用 1,000 只是近似值;1,024 才是硬件真实的运作逻辑。