欢迎来到二进制算术的世界!

你有没有想过,当电脑在游戏中计算你的分数或解决数学题时,它是如何“思考”的呢?由于电脑是由无数个只能处于开启 (1)关闭 (0) 状态的微小开关所组成的,因此它们只能用这两个数字来进行所有运算。这就是所谓的二进制算术 (Binary Arithmetic)

在本指南中,我们将学习如何像电脑一样进行二进制加法,以及如何使用“位移 (binary shifts)”来以闪电般的速度进行乘法和除法。如果一开始觉得困难也不用担心——只要学会这四条简单的加法规则,你也能成为人脑计算机!


第一部分:二进制加法

二进制加法与你在小学学过的加法非常相似。你需要将数字按位对齐,并从右到左进行计算。唯一的区别是你不能出现“2”或“3”——你必须将多出的值“进位 (carry)”到下一栏。

四大黄金法则

当你对两个二进制位进行加法时,只有四种可能的结果:

1. \( 0 + 0 = 0 \)

2. \( 0 + 1 = 1 \)

3. \( 1 + 0 = 1 \)

4. \( 1 + 1 = 10 \)(在本栏写 0,并向左边下一栏进位 1)。

三个数字相加(进阶级)

根据 AQA 教学大纲,你可能需要一次相加多达三个二进制数字。这意味着你可能会遇到同一栏中有三个 1 的情况!

• 如果该栏加起来等于 3(三个 1),规则是:写下 1 并向下一栏进位 1。这是因为十进制的 3 在二进制中是 11

速查小盒子:

• 总和为 0:写 0,进位 0

• 总和为 1:写 1,进位 0

• 总和为 2:写 0,进位 1

• 总和为 3:写 1,进位 1


逐步示例

让我们来相加 0110 (6)0111 (7)

步骤 1(右栏): \( 0 + 1 = 1 \)。写下 1。

步骤 2(下一栏): \( 1 + 1 = 10 \)。写下 0,进位 1。

步骤 3(下一栏): \( 1 + 1 + \)(进位的 1) \( = 11 \)。写下 1,进位 1。

步骤 4(左栏): \( 0 + 0 + \)(进位的 1) \( = 1 \)。写下 1。

最终答案: 1101(即十进制的 13!)

常见错误:忘记加上“进位”的数字。请务必在下一栏的顶部清楚写下你的进位数字,以免漏掉!

重点总结:二进制加法其实就是“数一数”该栏有多少个 1。如果有两个 1,就要进位;如果有三个 1,就是写 1 并进位 1。


第二部分:二进制位移 (Binary Shifts)

二进制移位是一种聪明的技巧,用来将数字乘以或除以 2 的幂次(2, 4, 8, 16 等)。对于电脑来说,将位元向左或向右“移位”比进行长乘法运算要快得多。

左移:乘法

当执行左移 (left shift) 时,二进制数中的每一位都会向左移动。每移动一位,该数字就会翻倍

• 左移 1 位:乘以 \( 2^1 \)(乘以 2

• 左移 2 位:乘以 \( 2^2 \)(乘以 4

• 左移 3 位:乘以 \( 2^3 \)(乘以 8

示例:以二进制数 0000 0101(即 5)为例。

向左移 2 位:“101”向左移动两个位置,并在右边留下的空位补 0。

结果:0001 0100(即 20!注意 \( 5 \times 4 = 20 \))。

右移:除法

右移 (right shift) 会将每一位向右移动。每移动一位,该数字就会除以 2。

• 右移 1 位:除以 2

• 右移 2 位:除以 4

示例:0000 1000(即 8)为例。

向右移 1 位:将所有位元向右移动一位。

结果:0000 0100(即 4!注意 \( 8 \div 2 = 4 \))。

你知道吗?二进制移位是“逻辑移位 (Logical Shifts)”。这意味着当位元移出 8 位元的界限时,它们就会直接消失!此外,产生的空位总是会填入 0


第三部分:移位的实际应用

为什么我们不直接进行普通算术而要用移位?在计算机科学中,效率就是一切。

1. 速度:移位是 CPU 能执行的最快操作之一。如果程序员需要乘以 8,他们会告诉电脑“左移 3 位”,因为这比“乘以 8”更快。

2. 图形处理:当电脑计算颜色或移动屏幕上的像素时,它们使用二进制移位来每秒处理数百万次计算。

鼓励一下:如果移位让你感到困惑,试着把它想象成将十进制数字乘以 10。你只需要把数字向左移,然后补一个 0。二进制移位完全一样,只是基数换成了 2!

重点总结:左移 = 变大(乘法)。右移 = 变小(除法)。每一次跳跃都是 2 的幂次。


复习速查表

二进制加法规则:

• \( 0+0 = 0 \)
• \( 1+0 = 1 \)
• \( 1+1 = 0 \) 进位 1
• \( 1+1+1 = 1 \) 进位 1

二进制移位规则:

左移 \( n \) 位:乘以 \( 2^n \)
右移 \( n \) 位:除以 \( 2^n \)
8 位元限制:在考试中,你通常处理的是 8 位元。如果 1 被移出了边界,它就会丢失。

最后小贴士:务必将你的二进制答案转回十进制来检查你的计算结果。如果你的十进制加法结果与二进制加法相符,那就代表你做对了!