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

你好,未来的计算机科学家!本章主题——二进制算术,是计算机进行思考与计算的核心基础。计算机所做的每一件事——从运行游戏到处理文档——归根结底都是通过仅仅使用 0 和 1 进行极其快速的加、减、乘、除运算。

如果听起来有些复杂,请不要担心!二进制算术实际上比十进制算术更简单,因为需要记住的规则要少得多。我们将一步步拆解每一项运算,确保你能够自信地处理这些 0 和 1。让我们开始计算吧!

为什么要学习二进制算术?(背景:数据表示)

在“数据表示”一节中,我们学习了所有数据(数字、文本、图像)都必须表示为二进制数字(位,bits)。既然数据以位形式存储,那么对这些数据执行的任何操作也必须使用二进制。计算机的中央处理器(CPU)中包含算术逻辑单元(ALU),它就是专门为执行这些二进制计算而设计的。


1. 二进制加法(基础)

二进制加法是最基本的运算。只要计算机能够进行加法,它就可以通过调整加法过程来实现减法、乘法和除法。

二进制加法的四大黄金法则

你只需要记住四条规则!

  • 规则 1: 0 + 0 = 0
  • 规则 2: 0 + 1 = 1
  • 规则 3: 1 + 0 = 1
  • 规则 4: 1 + 1 = 0 (并向高位进位 1)

关于特殊规则(规则 4)的解释:
回想一下十进制系统:当你计算 5 + 5 时,得到 10。0 写在个位上,1 则进位到十位。
在二进制中,1 + 1 等于二 (2)。由于我们没有“2”这个符号,我们将其写为 102。0 保持不变,1 进位到下一位。

额外情况(三个 1 相加):

  • 规则 5: 1 + 1 + 1 = 1 (并向高位进位 1)
    (这种情况发生在你有两个 1 加上来自低位的进位时。1+1+1 等于三,写作 112。)
分步示例:计算 5 + 3 (0101 + 0011)

我们从最右侧的一位(最低有效位)开始。

数字:
     0 1 0 1 (5)
+ 0 0 1 1 (3)
     -----

  1. 第 1 位(个位): 1 + 1 = 0。进位 1
  2. 第 2 位(2位): 0 + 1 + (进位 1) = 1 + 1 = 0。进位 1
  3. 第 3 位(4位): 1 + 0 + (进位 1) = 1 + 1 = 0。进位 1
  4. 第 4 位(8位): 0 + 0 + (进位 1) = 1。进位 0(无进位)

结果: 0 1 0 0 0 (这在十进制中是 8,计算正确!)

🚫 需要避免的常见错误:溢出 (Overflow)
如果你使用固定数量的位数(例如 8 位),而你的答案需要第九位(最后的进位),这就称为溢出。计算机无法存储完整的结果,答案将是不正确的。在存储空间有限的系统中,这是一个至关重要的概念。

2. 二进制减法(借位)

二进制减法使用了借位的概念,这和你小学学到的减法非常相似。

减法的基本规则
  • 规则 1: 0 - 0 = 0
  • 规则 2: 1 - 1 = 0
  • 规则 3: 1 - 0 = 1
  • 规则 4(借位): 0 - 1 = 1 (并向高位借位)

关于借位(规则 4)的解释:
当你需要执行 0 - 1 时,必须看向左边的位(下一位更高的位值)并从中 1。
在二进制中借 1 时,你拿回来的值是 2(即 102)。
因此,0 - 1 变成了 10 - 1,结果等于 1。

类比:想象你需要减去 1 个苹果,但你手里只有 0 个。你从隔壁邻居那里借来一袋苹果(价值 2 个苹果)。你从袋子里拿走 1 个(剩下 1 个苹果),而邻居那里少了一袋。

分步示例:计算 5 - 3 (0101 - 0011)

数字:
     0 1 0 1 (5)
- 0 0 1 1 (3)
     -----

  1. 第 1 位(个位): 1 - 1 = 0。
  2. 第 2 位(2位): 0 - 1。我们无法计算,必须从第 3 位借位
    • 第 3 位(4位)从 1 变为 0。
    • 第 2 位从 0 变为 102(即 2)。
    • 计算:10 - 1 = 1。
  3. 第 3 位(4位): 我们借走了 1,所以该位现在是 0。计算:0 - 0 = 0。
  4. 第 4 位(8位): 0 - 0 = 0。

结果: 0 0 1 0 (这在十进制中是 2,计算正确!)

💡 复习总结:加法与减法
  • 加法关键: 注意“1 + 1”。结果是 0,且进位 1。
  • 减法关键: 注意“0 - 1”。必须借位 1,使 0 变为 10(即 2)。

3. 二进制乘法

二进制乘法是所有运算中最简单的!它使用了与十进制长乘法相同的“移位和相加”方法,但由于你只需乘 0 或 1,规则简单得多。

乘法的四大黄金法则
  • 0 x 0 = 0
  • 0 x 1 = 0
  • 1 x 0 = 0
  • 1 x 1 = 1

注意到了吗?只要有一个 0,结果就是 0。如果两个都是 1,结果就是 1。简直太简单了!

分步示例:计算 5 x 3 (0101 x 0011)

过程分两步:1. 生成部分积;2. 将它们相加。

数字:
          0 1 0 1 (被乘数:5)
x      0 0 1 1 (乘数:3)
          -----

  1. 用最右侧的 1 相乘(乘数的个位):
    1 x 0101 = 0101

    部分积 1: 0 1 0 1

  2. 用下一位的 1 相乘(乘数的 2 位):
    1 x 0101 = 0101。我们必须将结果向左移动一位(在末尾加一个 0)。

    部分积 2: 0 1 0 1 0

  3. 用后面的 0 相乘:(结果全为 0,我们可以忽略,或者为了完整起见加上 00000 和 000000)。
  4. 将部分积相加:

              0 1 0 1
    +      0 1 0 1 0
              -------
    (记住第一节的二进制加法规则!)
    结果: 0 1 1 1 1

结果: 011112 在十进制中是 15 (8 + 4 + 2 + 1)。因为 5 x 3 = 15,所以计算正确!

🧠 记忆技巧:移位
将一个二进制数乘以 2,等同于在末尾添加一个 0(左移)。
示例: 0010 (2) 变成 0100 (4)。这种移位正是计算机实现快速乘法的方式。

4. 二进制除法

计算机执行二进制除法通常采用一种称为重复减法的方法。但在手动计算时,我们使用标准的竖式除法,这在二进制中更简单,因为只有两种选择:0 或 1。

  • 如果除数能够进入被除数的一部分,则商为 1。
  • 如果除数不能进入,则商为 0。
分步示例:计算 10 / 2 (1010 ÷ 10)

我们将 1010 (10) 除以 10 (2)。答案应该是 5 (0101)。

除数: 10     被除数: 1 0 1 0

  1. 看被除数的第一位: 10(除数)比 1 小吗?不是。商为 0。
  2. 看前两位: 10(除数)比 10 小吗?不,它们相等。
    • 商为 1。
    • 减去除数:10 - 10 = 00。
  3. 把下一位 (1) 拉下来: 我们现在有 01。10 比 01 小吗?不是。
    • 商为 0。
    • 减去 0:01 - 00 = 01。
  4. 把最后一位 (0) 拉下来: 我们现在有 010。10 比 10 小吗?不,它们相等。
    • 商为 1。
    • 减去除数:10 - 10 = 00。

商: 1 0 1 (最终答案是 0101,即十进制的 5。余数为 0)。

🔑 核心总结:效率
虽然我们学习了加、减、乘、除,但实际上复杂的计算机硬件通常通过快速重复加法来实现乘法,通过快速重复减法和移位来实现除法。运算越简单,处理器的运行速度就越快!

你现在已经掌握了计算机进行计算的基本原理!继续练习这些分步方法,二进制算术很快就会成为你的本能。