欢迎来到数字进制的世界!

你有没有想过,电脑本质上只是一堆细小的开关,它是如何理解像电子游戏或功课这些复杂事物的呢?这一切都源于它如何计算。虽然我们用十只手指来数数(十进制 Decimal),但电脑使用的是电力——不是“开”就是“关”(二进制 Binary)。在本指南中,我们将学习如何在人类的数字语言和电脑的语言之间进行转换。

如果起初觉得这些数学看起来很复杂,别担心!其实这更像是学习一种简单的代码。只要掌握了每种进制的“密码锁”,你很快就能像专家一样进行数字转换了。

1. 基础知识:我们必须知道的三种进制

在开始转换之前,让我们先认识一下你在 AQA 考试中需要掌握的三种系统:

十进制(Base 10):这是我们每天都在用的。它使用 \(0\) 到 \(9\) 的数字。
二进制(Base 2):电脑的母语。它只使用 \(0\) 和 \(1\)。
十六进制(Base 16):二进制的“速记法”。它使用 \(0\) 到 \(9\),以及字母 A, B, C, D, E,F

快速复习:为什么我们要用十六进制?试想一下,如果只用 \(0\) 和 \(1\) 来写一个长电话号码,那会花上超多时间!十六进制之所以被程序员使用,是因为它比长长的二进制串列简短得多,也更容易让人类阅读。

2. 二进制转十进制

要将二进制转换为十进制,我们使用简单的位值表。由于我们处理的是高达 \(255\) 的数字,我们通常使用 \(8\) 个比特(一个字节 Byte)。二进制中每个位置的值都是其右侧位置的两倍。

分步计算方法:

1. 画一个表格,填入这八个数字:128, 64, 32, 16, 8, 4, 2, 1
2. 将你的二进制数字写在表格下方。
3. 将顶部一行中,对应下方有 \(1\) 的所有数字相加。

例子:将 \(10101000\) 转换为十进制。
\(128\) (有) + \(64\) (无) + \(32\) (有) + \(16\) (无) + \(8\) (有) + \(4\) (无) + \(2\) (无) + \(1\) (无)
计算:\(128 + 32 + 8 = 168\)。
答案:\(168\)

关键要点:如果该位是 \(1\),代表“电灯开关”已打开——请加上那个数值!如果该位是 \(0\),就跳过它。

3. 十进制转二进制

这只是上述方法的反向操作!我们称之为“相减并移动”法。

分步计算方法:

1. 从你的十进制数字开始。
2. 观察你的位值表(从 \(128\) 开始)。
3. 你能否从当前数字中减去表格数值?
• 如果 YES(可以):在该字段填 \(1\),并减去该数值。
• 如果 NO(不可以):在该字段填 \(0\),然后移到下一个数字。

例子:将 \(75\) 转换为二进制。
• 能否从 \(75\) 中减去 \(128\)?不能 (\(0\))
• 能否从 \(75\) 中减去 \(64\)?能 (\(1\))。余数:\(75 - 64 = 11\)
• 能否从 \(11\) 中减去 \(32\)?不能 (\(0\))
• 能否从 \(11\) 中减去 \(16\)?不能 (\(0\))
• 能否从 \(11\) 中减去 \(8\)?能 (\(1\))。余数:\(11 - 8 = 3\)
• 能否从 \(3\) 中减去 \(4\)?不能 (\(0\))
• 能否从 \(3\) 中减去 \(2\)?能 (\(1\))。余数:\(3 - 2 = 1\)
• 能否从 \(1\) 中减去 \(1\)?能 (\(1\))。余数:\(0\)
答案:\(01001011\)

常见错误:学生常常会过早停下来。即使你已经减到 \(0\),也要确保填满剩下的表格字段,直到补齐 \(8\) 个比特为止!

4. 理解十六进制 (Base 16)

十六进制有点特别,因为数字从 \(9\) 之后就没了。为了将每个数值保持为一个字符,我们引入了字母:

A = \(10\), B = \(11\), C = \(12\), D = \(13\), E = \(14\), F = \(15\)

记忆小撇步:记住 A 是第一个字母,而 \(10\) 是第一个双位数。以此类推,你可以直接用手指点出来!

5. 二进制转十六进制(“半字节”技巧)

这是最简单的转换!“半字节 (Nibble)”就是半个字节(即 \(4\) 个比特)。

分步计算方法:

1. 将你的 \(8\) 比特二进制数分成两组,每组 \(4\) 个。
2. 分别计算每组的十进制值(使用 \(8, 4, 2, 1\) 的位值)。
3. 将这些数值转换为十六进制(如果数值为 \(10\) 或以上,请使用字母)。
4. 将两个字符合在一起。

例子:将 \(11100011\) 转换为十六进制。
• 左半边:\(1110\)。(\(8+4+2 = 14\))。在十六进制中,\(14\) 是 E
• 右半边:\(0011\)。(\(2+1 = 3\))。在十六进制中,\(3\) 是 3
答案:E3

你知道吗? \(8\) 比特数字的最大值在十进制中是 \(255\),二进制写为 \(11111111\),在十六进制中则写为 FF

6. 十六进制转十进制

要从十六进制转为十进制,我们观察那两个字符。第一个字符处于“\(16\) 位”,第二个字符处于“\(1\) 位”。

分步计算方法:

1. 将第一个十六进制数字转换为十进制值,并乘以 \(16\)。
2. 将第二个十六进制数字转换为十进制值。
3. 将这两个数字相加。

例子:将 \(2A\) 转换为十进制。
• 第一位是 \(2\)。乘以 \(16\):\(2 \times 16 = 32\)。
• 第二位是 A。在十进制中,A 是 \(10\)。
• 相加:\(32 + 10 = 42\)。
答案:\(42\)

替代方法:如果乘以 \(16\) 比较困难,你可以使用“桥梁法”:先将十六进制转为二进制(使用半字节技巧),再将该二进制转为十进制。这虽然多了一步,但往往更不容易出错!

7. 快速复习清单

最大值:十进制 \(255\) = 二进制 \(11111111\) = 十六进制 FF
二进制字段:\(128, 64, 32, 16, 8, 4, 2, 1\)。
十六进制字母:A(\(10\)) 到 F(\(15\))。
半字节 (Nibble):要在二进制和十六进制之间转换,请将字节分成两组 \(4\) 个比特。
精确度:务必确保你的二进制数字有 \(8\) 位(开头的 \(0\) 很重要!)。

最终总结

在不同进制之间进行转换,只需要遵循正确的地图即可。无论你是使用二进制的位值表,还是将字节拆分为半字节来处理十六进制,步骤始终是一样的。先从小数字开始练习,很快你就能像看自己的名字一样轻松读懂这些“密码”了!你一定没问题的!