什么是奇偶校验位?
奇偶校验位(parity bit)是在一串二进制数据后面额外附加的一个比特,用于实现最简单的差错检测。它是最古老、成本最低的校验机制之一,广泛应用于串行通信(如 UART)、内存和存储设备中。校验位的取值会让数据中 1 的总数(含校验位本身)始终为偶数(偶校验)或始终为奇数(奇校验)。
如何使用本计算器
把你的二进制数据以 0 和 1 组成的字符串形式输入(例如 1011010)。所有非 0、非 1 的字符都会被自动忽略。计算器会统计数据中 1 的个数,并同时给出你需要追加的偶校验位和奇校验位。
计算公式
首先统计 1 的个数,记为 ones。偶校验位即 ones mod 2:如果数据中 1 的个数本来就是偶数,校验位为 0;若为奇数,校验位为 1,从而把总数补成偶数。奇校验位则取其相反值 1 - (ones mod 2),使 1 的总数变为奇数。
实例演算
以数据 1011010 为例。1 出现在第 1、3、4、6 位 → 共有 4 个 1。因为 \(4 \bmod 2 = 0\),所以偶校验位为 0(总数本就是偶数)。而奇校验位为 1,这会让 1 的总数变成 5 个——正好是奇数。
常见问题
奇偶校验能发现哪些错误? 它能检测出任意奇数个比特翻转(1、3、5……)。但无法检测偶数个错误,也无法纠正错误。
奇校验和偶校验哪个更好? 在差错检测能力上两者并无优劣之分,选择哪种只是收发双方约定的规则。有些系统偏好奇校验,因为这样一条全 0 的线路就能被识别为错误。
校验位本身要算进去吗? 要。奇偶校验指的是数据中 1 的个数加上校验位后的总数,这也正是公式中要先统计数据里 1 的个数的原因。