一、作用
這是關於計算機基礎的知識。我們都知道計算機系統運行時,各個部件之間要進行數據交換,爲了確保數據在傳送的過程中正確無誤,一是提高硬件電路的可靠性,二是提高代碼的校驗能力,包括查錯和糾錯。此文主要是從海明碼的校驗能力來說,也是使用校驗碼的方法來檢測傳送的數據是否出錯。
它的實現原理,是在m個數據位之外加上k個校驗位,從而形成一個m+k位的新的碼字,使新的碼字的碼距比較均勻地拉大。把數據的每一個二進制位分配在幾個不同的偶校驗位的組合中,當某一位出錯後,就會引起相關的幾個校驗位的值發生變化,這不但可以發現出錯,還能指出是哪一位出錯,爲進一步自動糾錯提供了依據。
可能看這原理較難理解,請看下面的例子。
二、確定校驗碼方法
要計算海明校驗碼的值,很簡單,三步即可:
首先,要知道海明校驗碼是放在2的冪次位上的,即“1,2,4,8,16,32······”;
其次,對於信息位爲m的原始數據,需要加入k位的校驗碼,它滿足m+k+1<2k;
最後,即可計算出校驗碼。
三、舉例
例如:要計算原始信息位爲101101100的海明校驗碼。
1.先用m+k+1<2k計算出校驗位:9+k+1 <2k→k=4,即校驗位爲4位。
2.把原始信息位填入下表1:
3.填充校驗位
這是比較關鍵的一步,看看都有哪些位置用到了哪幾個校驗位,如下表2:
至此,咱們就可以知道每個校驗位都校驗了哪些位置,即:
Bit1=3,5,7,9,11,13
Bit2=3,6,7,10,11
Bit4=5,6,7,12,13
Bit8=9,10,11,12,13
最後,用位置上的原始信息(表1)做異或運算(相同時爲0,不同時爲1)就可以知道校驗位上的值了,即:
Bit1=1⊕0⊕1⊕0⊕1⊕0=1
Bit2=1⊕1⊕1⊕1⊕1=1
Bit4=0⊕1⊕1⊕0⊕0=0
Bit8=0⊕1⊕1⊕0⊕0=0
把校驗位填到表1爲:
四、結語
第一次看海明校驗的時候,不知道它是怎麼計算出校驗位上的值,之後和同伴討論了之後感覺自己明白了,但當另一個同伴再問的時候,需要點時間才能拾起,所以這次進行了總結。學習真的需要反覆。