什麼是偶同位位元?
同位位元(parity bit)是附加在一段二進位資料後面的單一位元,用來協助偵測傳輸過程中發生的錯誤。在偶同位(even parity)規則下,這個同位位元的取值會讓整段資料中 1 的總數(包含同位位元本身)維持為偶數。本計算器會統計你輸入字串中 1 的個數,並算出正確的偶同位位元。
使用方法
把你的二進位資料以一連串的 1 和 0 輸入(例如 1011001),然後送出。計算器會回報應附加的同位位元、原始資料中 1 的個數、資料長度,以及加上同位位元後 1 的總數。
公式說明
偶同位位元 \(P\) 的算法,是把資料中 1 的個數對 2 取餘數(mod 2):
$$P_{\text{even}} = \left(\text{count of 1s in } \text{Binary Data}\right) \bmod 2$$
如果資料中 1 的個數本來就是偶數,同位位元就是 0(不需做任何調整);如果是奇數,同位位元就是 1,藉此把 1 的總數補成偶數。
範例演算
以資料 1011001 為例,1 出現在第 1、3、4、7 個位置,共有四個 1。四是偶數,所以 \(4 \bmod 2 = 0\)。偶同位位元為 0,傳送的字組為 10110010,其中共有四個 1,仍維持偶數。
常見問題
偶同位與奇同位有什麼差別?偶同位讓 1 的總數成為偶數;奇同位則讓它成為奇數。兩種同位位元的取值剛好互為相反。
同位檢查能偵測所有錯誤嗎?單一同位位元可以偵測出任何奇數個位元被翻轉的情況,但無法偵測偶數個錯誤(例如同時有兩個位元被翻轉),也無法修正錯誤。
同位位元用在哪些地方?同位位元常見於序列通訊(UART)、記憶體(同位 RAM),也是更強大的錯誤更正碼(error-correcting code)的基礎元件。