欢迎来到二进制算术!

你有没有想过电脑在进行数学运算时,实际上是怎样「思考」的?由于电脑是由只能处于 开启 (ON, 1)关闭 (OFF, 0) 状态的小型开关组成的,因此它们不能像我们一样使用 0-9 的数字。取而代之的是,它们使用二进制算术 (binary arithmetic)

在本章中,我们将学习电脑处理数字的两种主要方式:将它们相加,以及通过位移 (shifting) 来进行乘法或除法。如果一开始觉得有点奇怪也不用担心——只要学会了四个简单的加法规则,你很快就会成为二进制专家!

1. 二进制加法

二进制加法的运作方式与你在小学学过的「竖式加法」完全相同,但实际上更简单,因为需要记住的数字更少。在我们的十进制系统(基数 10)中,当数字达到十时就需要进位。而在二进制(基数 2)中,当数字达到时,我们就需要进位!

四大黄金规则

要计算任何二进制加法,你只需要记住这四个结果:

1. \(0 + 0 = 0\)
2. \(0 + 1 = 1\)
3. \(1 + 1 = 0\) (进位 1 到下一位)
4. \(1 + 1 + 1 = 1\) (进位 1 到下一位)

逐步教学:两个数字相加

让我们将 \(00101011\) (43) 和 \(00010110\) (22) 相加。

步骤 1:最右侧(最低有效位,Least Significant Bit)开始。
步骤 2: 逐位应用规则。
步骤 3: 如果遇到 1 加 1,写下 0 并将 1「进位」到左边的邻位。

快速复习: 我们为什么要进位?就像在 \(7 + 5 = 12\) 中,你写下 2 并进位 1。在二进制中,\(1 + 1\) 等于「二」,写作 \(10\)。因此,我们写下 \(0\) 并进位 \(1\)。

三个数字相加

课程大纲指出你可能需要同时相加多达三个二进制数字。规则是一样的!

例子: 如果某一列有三个 1 (\(1 + 1 + 1\)),总和就是「三」。在二进制中,三写作 \(11\)。
所以,你需要写下 1进位 1

常见错误:溢出 (Overflow)

在考试中,答案的长度最多为 8 位 (8 bits)。你不需要将数字进位到第 9 位。如果你发现 8 位加法运算最后多出了一个「进位」,请务必检查你的计算!

重点总结: 二进制加法就是带进位的竖式加法。记住 \(1+1\) 是 \(0\) 进位 \(1\),而 \(1+1+1\) 是 \(1\) 进位 \(1\)。

2. 二进制位移

二进制位移 (binary shifts) 是电脑进行乘法除法的一种超快速方法。电脑不需要进行复杂的数学运算,只需将位向左或向右滑动即可。

逻辑左移 (乘法)

当你将位向移动时,数值会变大

- 向左移 1 位,数值乘以 \(2\)。
- 向左移 2 位,数值乘以 \(4\) (\(2 \times 2\))。
- 向左移 3 位,数值乘以 \(8\) (\(2 \times 2 \times 2\))。

操作方法:
1. 将每个位向左移动指定的位数。
2. 在右侧的空位补上 0
3. 任何从左侧「掉出」的位会直接被舍弃。

逻辑右移 (除法)

当你将位向移动时,数值会变小

- 向右移 1 位,数值除以 \(2\)。
- 向右移 2 位,数值除以 \(4\)。

操作方法:
1. 将每个位向右移动。
2. 在左侧的空位补上 0
3. 任何从右侧「掉出」的位就永远消失了!

现实生活中的类比

想象数字 \(500\)。如果你将所有位数向左移动一位并补上一个 \(0\),它就变成了 \(5000\)(乘以 10)。二进制位移的做法完全相同,但因为基数是 2,所以它是乘以或除以 2 的幂次方 (powers of 2)

你知道吗? 对电脑处理器来说,位移比实际的乘法运算「便宜」得多。只需滑动位就能节省更多的能量和时间!

2 的幂次方速查表

如果考试要求你使用位移进行乘法或除法,请使用此清单:
- \(2^1 = 2\)(左/右移 1 位)
- \(2^2 = 4\)(左/右移 2 位)
- \(2^3 = 8\)(左/右移 3 位)
- \(2^4 = 16\)(左/右移 4 位)

重点总结: 移 = 乘法移 = 除法。记得将新的空位补上 0。

总结清单

在继续学习之前,请确保你能:
- 将两个 8 位二进制数相加。
- 将三个 8 位二进制数相加。
- 使用左移将数字乘以 2、4 或 8。
- 使用右移将数字除以 2、4 或 8。
- 解释位移是如何用于 2 的幂次方的简单乘除法。

考试小撇步: 检查二进制加法时,可以先将数字转换为十进制进行正常加法,看看你的二进制答案是否匹配!