漢明碼是一種在二進制傳輸中檢測和糾正錯誤的方法,它通過在用于檢查的序列中加入額外的二進制數字來實現,以及一種提供檢測邏輯的算法,這種代碼能夠在任何位序列中發現兩個錯誤并修復一個可能不正確的位。最常用的漢明碼...
漢明碼是一種在二進制傳輸中檢測和糾正錯誤的方法,它通過在用于檢查的序列中加入額外的二進制數字來實現,以及一種提供檢測邏輯的算法,這種代碼能夠在任何位序列中發現兩個錯誤并修復一個可能不正確的位。最常用的漢明碼被稱為漢明(7,4),其中四個表示起始位的原始數目,七個表示包含額外檢查位后序列中的位總數。手持計算機的人從其創造者理查德·哈明那里得名,他在1950年發表了該方法。漢明碼的工作方式是在序列中插入額外的校驗位,稱為奇偶校驗位。校驗位總是在2的冪次方注入,因此,任何數量的位都可以通過包含額外的奇偶校驗位來驗證。這可能會一直持續到最后一個加到序列中的奇偶校驗位的位置是2的冪次方,這個位置小于或等于序列中的最終位置。當所有的奇偶校驗位就位時,剩余的位置就是實際的數據位四位的例子,位位置1、2和4將是奇偶校驗位,而位置3、5、6和7是數據。一旦建立了這個序列,漢明碼的邏輯就開始工作。在漢明碼中,添加到序列中的每個奇偶校驗位都被用來檢查一些位位置1的奇偶校驗位每隔一位檢查一次,基本上就是序列中每一個奇數編號的位置第二個奇偶校驗位在第二位,檢查第二位和第三位,然后跳過兩個位置,再檢查兩個位置,再跳過兩個位置,依此類推。如果第四位有一個奇偶校驗位,它的行為類似于它檢查第四到第七位,然后跳過四個位置,再檢查四個位置,接著,序列中的每個奇偶校驗位都以這種方式貫穿整個序列。漢明碼檢測和糾正錯誤的過程是將每次奇偶校驗的校驗序列中的位相加,每一個奇偶校驗都必須是一個偶數。以7位為例,對于第一次奇偶校驗,第1位、第3位、第5位和第7位相加。如果總和是偶數,則奇偶校驗,但如果總數為奇數,則存在錯誤。由于奇偶校驗重疊,將出現兩個這樣的錯誤。當未能得出偶數總和的兩個奇偶校驗位位置相加時,它將顯示需要更正的位。在七位漢明碼示例中,考慮第五位的位不正確。第1位、第3位、第5位和第7位的位之和將顯示為奇數,第四位到第七位的位之和也是如此。這表示位置1和位置4的校驗位的奇偶校驗失敗。當1和4相加時,總數是5,這是傳輸中需要更正的不正確位的位置
-
發表于 2020-08-07 08:21
- 閱讀 ( 1069 )
- 分類:電腦網絡