什麼是奇同位元?
同位元(parity bit)是附加在一段二進位資料後面的單一額外位元,用來進行基本的錯誤偵測。採用奇同位(odd parity)時,這個同位元會被設定成讓 1 的總數——也就是資料位元加上同位元本身——永遠保持為奇數。本計算器會數出您輸入字串中 1 的數量,並算出符合奇同位規則所需的同位元(0 或 1)。
如何使用本計算器
輸入您的二進位資料字串(只能包含字元 0 和 1)。計算器會統計其中有幾個 1。若 1 的個數本來就是奇數,同位元就是 0(不需更動);若 1 的個數是偶數,同位元則為 1,加上後即可讓總數變成奇數。
公式說明
假設資料中 1 的個數為 k。奇同位元的計算方式為 $$P = (k + 1) \bmod 2$$ 換句話說,當 k 為偶數時 \(P = 1\),當 k 為奇數時 \(P = 0\)。傳送的編碼字(codeword)就是原始資料再附加 P,如此即可確保 1 的總數為奇數。
實際範例
以資料 1011001 為例。數一數其中的 1:出現 1 的位置共有 1、1、1、1,也就是 4 個 1,屬於偶數。為了讓總數變成奇數,必須再加上一個 1,因此同位元為 1。完整的編碼字為 10110011,其中含有 5 個 1(奇數)。若資料是 1011000(3 個 1,本來就是奇數),則同位元為 0。
常見問題
奇同位與偶同位有什麼差別?偶同位(even parity)讓 1 的總數為偶數;奇同位(odd parity)則讓總數為奇數。本工具採用的是奇同位。
同位元能偵測所有錯誤嗎?單一同位元可以偵測出奇數個位元翻轉的錯誤,但無法偵測偶數個錯誤,也無法定位或修正錯誤。
同位元用在哪些地方?同位元常見於序列通訊(如 UART)、記憶體系統,以及許多簡易的資料完整性檢查中。