通过MCP连接 →

输入计算

数学公式

广告

结果

偶校验位
0
追加该位使 1 的总数为偶数
奇校验位 1
1 的个数 4
数据总位数 7

什么是奇偶校验位?

奇偶校验位(parity bit)是在一串二进制数据后面额外附加的一个比特,用于实现最简单的差错检测。它是最古老、成本最低的校验机制之一,广泛应用于串行通信(如 UART)、内存和存储设备中。校验位的取值会让数据中 1 的总数(含校验位本身)始终为偶数(偶校验)或始终为奇数(奇校验)。

附加了奇偶校验位的二进制数据字节,以单独高亮的单元格显示
在数据位后附加一个奇偶校验位以实现错误检测。

如何使用本计算器

把你的二进制数据以 0 和 1 组成的字符串形式输入(例如 1011010)。所有非 0、非 1 的字符都会被自动忽略。计算器会统计数据中 1 的个数,并同时给出你需要追加的偶校验位和奇校验位。

计算公式

首先统计 1 的个数,记为 ones。偶校验位即 ones mod 2:如果数据中 1 的个数本来就是偶数,校验位为 0;若为奇数,校验位为 1,从而把总数补成偶数。奇校验位则取其相反值 1 - (ones mod 2),使 1 的总数变为奇数。

$$\begin{gathered} P_{\text{even}} = \left(\sum \text{Bits}\right) \bmod 2, \qquad P_{\text{odd}} = 1 - P_{\text{even}} \\[1.5em] \text{where}\quad \left\{ \begin{aligned} \sum \text{Bits} &= \text{count of 1s in the data} \\ P_{\text{even}} &= \text{even parity bit} \\ P_{\text{odd}} &= \text{odd parity bit} \end{aligned} \right. \end{gathered}$$
展示统计 1 位数量并得出偶校验和奇校验位值的流程
偶校验使 1 的总数为偶数;奇校验使其为奇数。

实例演算

以数据 1011010 为例。1 出现在第 1、3、4、6 位 → 共有 4 个 1。因为 \(4 \bmod 2 = 0\),所以偶校验位为 0(总数本就是偶数)。而奇校验位为 1,这会让 1 的总数变成 5 个——正好是奇数。

常见问题

奇偶校验能发现哪些错误? 它能检测出任意奇数个比特翻转(1、3、5……)。但无法检测偶数个错误,也无法纠正错误。

奇校验和偶校验哪个更好? 在差错检测能力上两者并无优劣之分,选择哪种只是收发双方约定的规则。有些系统偏好奇校验,因为这样一条全 0 的线路就能被识别为错误。

校验位本身要算进去吗? 要。奇偶校验指的是数据中 1 的个数加上校验位后的总数,这也正是公式中要先统计数据里 1 的个数的原因。

最后更新: