偶校驗位計算器 - 二進位錯誤檢測

為二進位資料傳輸產生偶校驗位,並可即時驗證收到的二進位字串是否有單位元錯誤。

輸入二進位資料即可計算其偶校驗位與傳輸字串,或貼上收到的資料來檢查是否有傳輸錯誤。

偶校驗位計算器 - 二進位錯誤檢測
為二進位資料傳輸產生偶校驗位,並可即時驗證收到的二進位字串是否有單位元錯誤。

關於偶校驗位計算器

校驗是數位通訊中最古老、也最廣泛部署的錯誤檢測機制之一。當二進位資料穿過有雜訊的通道——序列纜線、記憶體匯流排、網路連結或儲存媒體——個別位元都可能因電磁干擾、宇宙輻射或硬體故障而損壞。校驗位是一個附加在資料區塊後方的額外位元,讓接收端檢查是否發生損壞。 偶校驗是校驗的變體之一,它要求合併後的序列——資料位加校驗位——中的 1 總數永遠保持偶數。規則很簡單:先數原始資料中的 1。如果數量已經是偶數,校驗位就設為 0;如果是奇數,校驗位就設為 1,讓總數變成偶數。用數學術語來說,校驗位就是所有資料位的 XOR(互斥或)結果——硬體電路只要奈秒等級就能完成這個運算。 以具體例子來說:假設你要傳送四位元資料 1010。這組資料剛好有兩個 1,本來就是偶數,所以偶校驗位為 0。完整的傳輸字串是 10100。接收端會把全部五個位元做 XOR:1 ⊕ 0 ⊕ 1 ⊕ 0 ⊕ 0 = 0。結果為 0 代表 1 的總數是偶數,因此不會標記錯誤。若傳輸途中有一個位元損壞,字串變成 11100。接收端 XOR:1 ⊕ 1 ⊕ 1 ⊕ 0 ⊕ 0 = 1。非零的 XOR 結果表示 1 的總數是奇數,代表五位元框架中某處發生了錯誤。 偶校驗與奇校驗的差別只在目標總數:前者要求偶數,後者要求奇數。兩者都能以 100% 的可靠度偵測任何單一位元錯誤,因為翻轉一個位元會讓奇偶性從偶變奇,或從奇變偶。但如果同時翻轉了偶數個位元,兩者都會靜默失敗,因為兩次翻轉會彼此抵消,校驗結果保持不變。對於必須處理多位元錯誤的情況,工程師通常會使用更強的編碼,例如 CRC(循環冗餘檢查)、漢明碼或 Reed-Solomon 碼。 在所有資料位元都為 0 時,偶校驗常常比奇校驗更受青睞,因為它更容易符合協定一致性。對於奇校驗,全 0 資料字的校驗位一定是 1,保證傳輸中一定有一個非零位元。對於偶校驗,全 0 資料字會得到全 0 傳輸,這在某些初始化或握手協定中相當實用。採用偶校驗或奇校驗,通常由所實作的通訊標準規定。 偶校驗的實際應用包括 UART 序列通訊(其中校驗模式是可設定選項)、一些每個位元組額外儲存一個校驗位的舊式記憶體系統,以及某些網路框架協定。現代高速連結通常會使用更強大的錯誤檢測與糾錯編碼,但偶校驗在資源受限的嵌入式系統中仍然很有價值,也是計算機科學與數位電子課程中的基礎概念。 這個計算器會自動完成偶校驗計算的每一步:驗證輸入是否完全由二進位數字組成,統計 1 的數量,決定正確的偶校驗位,並輸出完整的傳輸字串。可選的驗證欄位讓你貼上收到的字串(包含校驗位),並立即判斷偶校驗檢查是否通過。

偶校驗位範例

下表展示了幾個二進位輸入的偶校驗位計算方式。

二進位資料校驗位傳輸字串
10100兩個 1(偶數)→ 校驗位 = 0。傳輸:10100
11101三個 1(奇數)→ 校驗位 = 1。傳輸:11101
110011000四個 1(偶數)→ 校驗位 = 0。傳輸:110011000
101101000四個 1(偶數)→ 校驗位 = 0。傳輸:101101000
111111110八個 1(偶數)→ 校驗位 = 0。傳輸:111111110

如何使用偶校驗位計算器

  1. 在二進位資料欄位中輸入要傳送的二進位字串——只能使用 0 和 1,不要有空格或分隔符號。
  2. 點擊「計算偶校驗位」,即可查看 1 的數量、所需的偶校驗位以及完整的傳輸字串。
  3. 複製傳輸字串(原始資料加上附加的校驗位)並傳送給接收端。
  4. 要驗證收到的資料,請將完整的收到字串(包含校驗位)貼到收到的資料欄位中,然後點擊「計算」——工具會檢查 1 的總數是否為偶數。
  5. 點擊「重設」可清除所有欄位並開始新的計算。

偶校驗位計算器常見問題

什麼是偶校驗?
偶校驗是一種錯誤檢測方案,會在二進位資料後附加一個校驗位,使合併後的字串(資料加校驗位)中的 1 總數始終為偶數。如果資料中已有偶數個 1,校驗位為 0;如果是奇數,校驗位為 1,以讓總數變成偶數。
偶校驗位是如何計算的?
偶校驗位等於所有資料位元的 XOR(互斥或)結果。當 1 的數量為奇數時,XOR 結果為 1;當為偶數時,結果為 0。因此,對於資料 1010(兩個 1,已經是偶數),XOR 結果為 0,校驗位也為 0。對於資料 1110(三個 1,奇數),XOR 結果為 1,校驗位也為 1。
偶校驗和奇校驗有什麼不同?
偶校驗要求 1 的總數為偶數;奇校驗要求其為奇數。兩者都能偵測任何單一位元錯誤。主要的實務差異在於,奇校驗能保證全 0 資料字對應的校驗位非零,有助於偵測「卡在 0」故障。若協定要求以零值填充位元組維持一致的框架格式,則可能更偏好偶校驗。
偶校驗能偵測所有錯誤嗎?
不能。偶校驗可以可靠偵測任何單一位元錯誤,因為翻轉一個位元會讓奇偶性從偶變奇。然而,如果恰好同時翻轉兩個位元,奇偶性仍然是偶數,錯誤就不會被偵測到。若需要更強的保護,請使用 CRC、漢明碼或 Reed-Solomon 糾錯碼。
偶校驗在實務上用在哪裡?
偶校驗用於 UART 序列通訊(其中校驗模式是可設定選項)、一些舊式記憶體模組,以及某些網路框架協定。它也是計算機科學和數位電子課程中的基礎教學工具,因為它能以極低的數學複雜度說明錯誤檢測原理。
驗證檢查是怎麼運作的?
要驗證收到的資料,請在「收到的資料」欄位中輸入完整的收到字串——原始資料加上附加的校驗位。計算器會統計收到字串中 1 的總數。如果數量為偶數,就符合偶校驗,不會標記錯誤;如果為奇數,則偵測到單一位元錯誤(或任何奇數個錯誤)。