偶校验与它的盲点
用一位发现部分错误
奇偶性说明值为 1 的位的数量是偶数还是奇数。偶校验位加到数据后,使数据和校验位合起来包含偶数个 1。
实验台
改变电路设置,预测读数,再检查挑战结果。这些是教学模型,每课都会说明模型的假设。
登录以保存学习进度. 访客进度保存在此设备上.
工作原理
理想二进制逻辑:0 表示低,1 表示高,不是测得的电压。不模拟电源、电流、输出负载或响应延迟;图示表示功能,不表示芯片引脚。
b0、b1、b2 是数据位,N 数出其中的 1。P 是附加校验位:P = b0 ⊕ b1 ⊕ b2。⊕ 是 XOR,Exclusive OR,异或。N + P 总为偶数。实验生成校验位,不模拟带噪传输。
难度
搭建 · 搭建电路
接通电源,设置 b0 = 1、b1 = 0、b2 = 0。得到 P = 1,总 1 数为 2。
需要提示?
b0 = 1; b1 = 0; b2 = 0 → P = 1; N + P = 2
探索 · 改变输入
设置 b0 = 1、b1 = 1、b2 = 0。得到 P = 0,总 1 数为 2。
需要提示?
b0 = 1; b1 = 1; b2 = 0 → P = 0; N + P = 2
独立解题 · 完成挑战
设置 b0 = 1、b1 = 1、b2 = 1。得到 P = 1,总 1 数为 4。
需要提示?
b0 = b1 = b2 = 1 → P = 1; N + P = 4
延伸阅读与电路配方
用一位发现部分错误
给消息附上一项小检查。多一位能发现奇数个位翻转,但不能重建消息。
N = b0 + b1 + b2; P = b0 ⊕ b1 ⊕ b2; N + P ∈ {0, 2, 4}
数据有奇数个 1 时 P = 1,偶数个时 P = 0。它调整数量的奇偶性,不修复消息数值。
有用的规律
受保护字中任何一位翻转,包括校验位本身,都会让偶校验失败。奇数次翻转也一样。
模型之外
偶数个位翻转可能保留正确校验,却改变数据。单个校验位不能定位或纠正错误。
值得避开的误区
校验通过不证明数据正确。修改输入后重新生成 P,会创建新有效字,并不是检查之前传出的字。
一个原本偶校验有效的字中,两处不同位翻转。检查会…
- 一定失败
- 数据错误也可能通过
- 纠正两处错误
延伸阅读
两次翻转改变奇偶性两次,回到偶数,这种错误不会被发现。
搭建电路
设置 b0 = 1、b1 = 0、b2 = 0。一个 1 需要 P = 1,总共两个。
N = 1; P = 1; N + P = 2
改变输入
三个数据位都设为 1。P = 1,总共四个 1。
N = 3; P = 1; N + P = 4
试试另一条路径
写下有效的数据加 P。在纸上翻转一位,再翻转两位,保留原 P,除非翻转的是它。每次数出 1 的总数。