管你以前會不會,看完都變會。哈哈哈哈哈
首先要了解一下,海明碼由校驗碼和題目給出的原資料組合而成。
例如:用偶校驗方式的海明碼校驗資料01101001
1. 第一步:確定校驗碼的位數k
2. 第二步:確定校驗碼以及原資料的位置h1
p1h2
p2h3
h4p3
h5h6
h7h8
p3h9
h10h11
h12
h1p1
h2p2
h3d0——1
h4p3
h5d1——0
h6d2 ——0
h7d3 ——1
h8p4
h9d4——0
h10d5——1
h11d6——1
h12d7——0
3. 第三步:求校驗碼
我們要知道需要校驗的是題目中給出的原資料,也就是d(0-7)
在海明碼中,結合上面的**,看看我的思路(以下例子看幾個就好,後面有結論**),下面的加法純屬看下標,沒有實際的值
d0—對應h3—h3=h2+h1—h2,h1對應p2,p1—所以d0由p1,p2驗證。
d1—對應h5—h5=h4+h1—h4,h1對應p3,p1—所以d1由p1,p3驗證。
d2—對應h6—h6=h4+h2—h4,h2對應p3,p2—所以d2由p2,p3驗證。
d3—對應h7—h7=h4+h2+h1—h4,h2,h1對應p3,p2,p1—所以d1由p1,p2,p3驗證。
d4—對應h9—h9=h8+h1—h8,h1對應p4,p1—所以d4由p1,p4驗證。
d5—對應h10—h10=h8+h2—h8,h2對應p4,p2—所以d5由p2,p4驗證。
d6—對應h11—h11=h8+h2+h1—h8,h2,h1對應p4,p2,p1—所以d6由p1,p2,p4驗證。
d7—對應h12—h12=h8+h4—h8,h4對應p4,p3—所以d7由p3,p4驗證。
由以上得出
需驗證的資料
由那個校驗碼驗證
d0p1,p2
d1p1,p3
d2p2,p3
d3p1,p2,p3
d4p1,p4
d5p2,p4
d6p1,p2,p4
d7p3,p4
驗證碼=需要它驗證的所有原資料(題目中給出的)相異或,也就是說
p1=d0異或d1異或d3異或d4異或d6(10101)
p2=d0異或d2異或d3異或d5異或d6(10111)
p3=d1異或d2異或d3異或d7(0010)
p4=d4異或d5異或d6異或d7(0110)
若採用奇校驗,則將各校驗位的偶校驗值取反即可
3. 最後一步:校驗
四個校驗位由gi表示
gi=pi和所有由它校驗的原資料相異或,即,
其實很簡單,wo說起來有點麻煩,不知道說清楚了沒有,剛複習到這一塊,總結一下。g1=p1異或d0異或d1異或d3異或d4異或d6(p1,10101)
g2=p2異或d0異或d2異或d3異或d5異或d6(p2,10111)
g3=p3異或d1異或d2異或d3異或d7(p3,0010)
g4=p4異或d4異或d5異或d6異或d7(p4,0110)
通俗易懂的CRC校驗
1.crc校驗原理 crc校驗原理看起來比較複雜,好難懂,因為大多數書上基本上是以二進位制的多項式形式來說明的。其實很簡單的問題,其根本思想就是先在要傳送的幀後面附加乙個數 這個就是用來校驗的校驗碼,但要注意,這裡的數也是二進位制序列的,下同 生成乙個新幀傳送給接收端。當然,這個附加的數不是隨意的,...
海明碼校驗原理
海明校驗的基本思想 將有效資訊按某種規律分成若干組,每組安排乙個校驗位,做奇偶測試,就能提供多位檢錯資訊,以指出最大可能是哪位出錯,從而將其糾正。實質上,海明校驗是一種多重校驗。海明校驗的特點 它不僅具有檢測錯誤的能力,同時還具有給出錯誤所在準確位置的能力。一 校驗位的位數 校驗位的位數與有效資訊的...
海明碼校驗程式設計
海明碼校驗程式設計 1 海明碼編碼 輸入 一串二進位制資料串 輸出 插入海明碼後的二進位制資料串 2 海明碼糾錯 輸入 一串含海明碼的二進位制資料串 輸出 通過海明碼校驗,檢查該二進位制串是否有錯,若有錯誤,則對錯誤位進行糾錯,將糾錯後的二進位制串輸出。這裡我們僅從程式設計實現的角度分析海明碼的編碼...