feat: 更新附录交互组件和文档

This commit is contained in:
sanbuphy
2026-02-24 00:18:09 +08:00
parent d45df3cda5
commit 94f9db0834
88 changed files with 11797 additions and 7634 deletions
@@ -112,23 +112,20 @@
如果刚才介绍的逻辑门只能做简单的条件判断,那计算机到底是如何做数学运算的呢?
我们先回想一下手算加法的方式:对应位相加,如果超出了限制(十进制是满十进一,二进制是满二进一),就向更高位“进位”。
在二进制中,只有 0 和 1。对于一位数的加法,可能的情况只有四种:
- `0 + 0 = 0` (本位是 0,不进位)
- `0 + 1 = 1` (本位是 1,不进位)
- `1 + 0 = 1` (本位是 1,不进位)
- `1 + 1 = 10` (本位是 0,进位 1
<BinaryAdditionRulesDemo />
仔细观察这四种情况,你会发现:
1. **本位的结果**,只有在两个输入**不同**时才为 1,这正是 **XOR 门(异或门)** 的逻辑。
2. **进位的结果**,只有在两个输入**都为 1** 时才为 1,这正是 **AND 门(与门)** 的逻辑。
因此,只要把一个 XOR 门和一个 AND 门组合起来,我们就得到了能计算一位数加法的电路,这也是最基础的**半加器(Half Adder**。
因此,只要把一个 XOR 门(负责算本位)和一个 AND 门(负责算进位)组合起来,我们就得到了能计算一位数加法的电路,这也是最基础的**半加器(Half Adder**。
<HalfAdderDemo />
但半加器有个致命缺陷:它无法处理来自低位的进位。在多位加法中,中间的每一位不仅要加 A 和 B,还要加上低位传来的进位。这就需要**全加器(Full Adder**
但半加器有个致命缺陷:它在物理结构上**只有两个输入端口(A 和 B**
想象我们在做十进制竖式加法(比如 `19 + 22`):
- **算个位**`9 + 2 = 11`。只需两个数相加,写 `1``1`。这刚好是两个输入,半加器能完美胜任。
- **算十位**:不仅要算 `1 + 2`,还要**加上刚才个位传过来的“进位 1”**(即 `1 + 2 + 1 = 4`)。这意味着在多位加法中,除了最低位,其他位实际上是在做**三个数字**的相加!
因为半加器没有接纳“低位传来的进位(Carry-in)”的第三个输入口,所以除了最右边的那一位,它在别的位全都没法用。为了解决这个问题,我们需要能接收三个信号的**全加器(Full Adder**
<FullAdderDemo />
@@ -185,6 +182,10 @@
当我们将 32 个抑或 64 个这种触发器整齐地编排成一列,施加同一种强劲的时钟频率信号(Clock)来号令它们统一行动时,**寄存器(Register)**便应运而生了。它身居 CPU 系统的心脏位置,被当做极速的“工作草稿纸”,默默捍卫着你每一个即时的关键变量。
:::
请通过下面的互动演示,亲自体验这个打破和恢复闭环的过程:
<FlipFlopDemo />
---
## 4. CPU 架构:从功能单元到处理器