1.2.2 奇偶校验
本节导学
奇偶校验是校验码里最基础的一类。它的思想非常直接:在信息位后面或前面补 1 位校验位,让整个码字中 1 的个数满足“奇数”或“偶数”的约束。接收方再数一遍 1 的个数,如果不符合约定,就知道传输或存储过程中发生了错误。
这类方法的价值在于成本极低,只增加 1 位;局限也同样明显,它只能发现某些错误,不能定位错误位。理解这个“便宜但能力弱”的特征,是后面学习 CRC 和海明码的起点。
奇校验与偶校验
设信息位为若干个二进制位,校验位记为 P。奇偶校验的规则只看整个码字中 1 的个数。
| 类型 | 约束对象 | 规则 | 校验位如何决定 |
|---|---|---|---|
| 奇校验 | 信息位 + 校验位 | 1 的总数为奇数 | 信息位中 1 已为奇数则 P=0,否则 P=1 |
| 偶校验 | 信息位 + 校验位 | 1 的总数为偶数 | 信息位中 1 已为偶数则 P=0,否则 P=1 |
注意,奇校验不是要求“校验位是奇数”,偶校验也不是要求“校验位是偶数”。它们约束的是整个码字中 1 的个数。
举例:信息位 101010 中有 3 个 1。
| 采用方式 | 目标 | 校验位 | 码字 |
|---|---|---|---|
| 奇校验 | 总数保持奇数 | 0 | 1010100 |
| 偶校验 | 总数变成偶数 | 1 | 1010101 |
为什么 1 位错一定能发现
二进制错误就是某些位发生翻转:0 变 1,或 1 变 0。只要翻转 1 位,码字中 1 的个数奇偶性一定改变:
| 原位 | 出错后 | 1 的个数变化 | 奇偶性是否改变 |
|---|---|---|---|
0 | 1 | +1 | 改变 |
1 | 0 | -1 | 改变 |
因此,一位奇偶校验可以稳定发现单比特错误。课程里也强调,通信过程中常见的简单错误往往是某个比特位发生变化,所以奇偶校验在低成本场景有实际意义。
为什么偶数位错可能漏检
如果同时翻转 2 位、4 位等偶数个位,1 的个数奇偶性可能不变,接收方就可能误以为没有错误。
以偶校验为例,假设发送码字 11,其中有 2 个 1,满足偶校验。若两位都翻转,接收方得到 00,其中有 0 个 1,仍然满足偶校验。规则没有被破坏,错误就被漏掉了。
这也解释了为什么奇偶校验不能纠错:接收方最多知道“奇偶性不对”,但不知道到底哪一位翻转。收到 00、01、10、11 中某个非法状态时,可能有多个原始位置能够解释这个错误,无法唯一定位。
与后续校验技术的关系
| 技术 | 增加的校验信息 | 优势 | 局限 | 被改进的原因 |
|---|---|---|---|---|
| 奇偶校验 | 1 位 | 成本最低、实现最简单 | 偶数位错可能漏检,不能纠错 | 检错能力太弱 |
| CRC | 多位余数 | 对多位错和突发错更强 | 通常不能纠错 | 只能发现,不能定位 |
| 海明码 | 多个交叉校验位 | 可定位并纠正单比特错误 | 冗余与设计复杂度更高 | 用成本换自动修复 |
奇偶校验不是“没用”,而是适合便宜、快速、错误模型简单的场景。后续技术并不是完全否定它,而是在可靠性要求更高时增加冗余和计算规则。
做题路线
- 先判断题干要求奇校验还是偶校验。
- 数信息位中
1的个数。 - 根据目标奇偶性补
P。 - 若问能力,记住:可检出奇数个位错,尤其单比特错;偶数位错可能漏检;不能纠错。
- 若选项写“奇数位/偶数位出错”,要看它说的是“出错位的数量”还是“第 1、3、5 位这种位置编号”,二者不是一回事。
🧪 例题(按难度)
简单(3题)
中级(3题)
例题1(编码题)
信息位为 100110,采用 偶校验,校验位 P 应为:
例题2(能力判断)
一位奇偶校验能检测下列哪类错误?
困难(1题)
📚 本课小结
- 奇校验/偶校验:通过 1 位校验位控制“1 的个数奇偶性”
- 典型能力:能检错(主要是 1 位错),不能纠错;偶数位错可能漏检