海明碼校驗(通俗易懂)

2021-10-14 23:05:31 字數 1729 閱讀 1676

管你以前會不會,看完都變會。哈哈哈哈哈

首先要了解一下,海明碼由校驗碼和題目給出的原資料組合而成。

例如:用偶校驗方式的海明碼校驗資料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和所有由它校驗的原資料相異或,即,

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)

其實很簡單,wo說起來有點麻煩,不知道說清楚了沒有,剛複習到這一塊,總結一下。

通俗易懂的CRC校驗

1.crc校驗原理 crc校驗原理看起來比較複雜,好難懂,因為大多數書上基本上是以二進位制的多項式形式來說明的。其實很簡單的問題,其根本思想就是先在要傳送的幀後面附加乙個數 這個就是用來校驗的校驗碼,但要注意,這裡的數也是二進位制序列的,下同 生成乙個新幀傳送給接收端。當然,這個附加的數不是隨意的,...

海明碼校驗原理

海明校驗的基本思想 將有效資訊按某種規律分成若干組,每組安排乙個校驗位,做奇偶測試,就能提供多位檢錯資訊,以指出最大可能是哪位出錯,從而將其糾正。實質上,海明校驗是一種多重校驗。海明校驗的特點 它不僅具有檢測錯誤的能力,同時還具有給出錯誤所在準確位置的能力。一 校驗位的位數 校驗位的位數與有效資訊的...

海明碼校驗程式設計

海明碼校驗程式設計 1 海明碼編碼 輸入 一串二進位制資料串 輸出 插入海明碼後的二進位制資料串 2 海明碼糾錯 輸入 一串含海明碼的二進位制資料串 輸出 通過海明碼校驗,檢查該二進位制串是否有錯,若有錯誤,則對錯誤位進行糾錯,將糾錯後的二進位制串輸出。這裡我們僅從程式設計實現的角度分析海明碼的編碼...