透過 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 的總數變成五個——一個奇數。

常見問題

同位檢查能抓到哪些錯誤?同位元可偵測出奇數個位元被翻轉的情況(1、3、5……),但無法偵測偶數個錯誤,也無法修正錯誤。

偶同位與奇同位,哪一個比較好?就錯誤偵測能力而言,兩者並無優劣之分;採用哪一種純粹是收送雙方事先約定的慣例。部分系統偏好奇同位,因為這樣一來全為 0 的線路狀態就能被判定為錯誤。

同位元本身要算進去嗎?要。所謂同位,指的是資料中 1 的個數加上同位元後的總數,這也是公式以資料中 1 的個數作為基礎的原因。

最後更新: