1. 奇偶校验码
奇偶校验码是一种最为简单的校验码,它用来检测数据传输过程中是否发生错误。
它有两种校验方法:奇校验和偶校验
奇校验:原始码流+校验位 总共有奇数个1
偶校验:原始码流+校验位 总共有偶数个1
它的校验位只有一位,要么是0,要么是1,并且它的校验码还可以放在码流的前面。
2.举例:
原始数据:0010 1100
奇校验:0010 11000 //校验位为0,3个1 奇数个1
偶校验:0010 11001 //校验位为1,4个1 偶数个1
3.错误检测能力
只能检测出奇数个错误。
奇校验 正确码流 11000001
错1位 11000011 变成了偶数个1,能检测出错误
错2位 11000010 变成了奇数个1,检测不出错误
错3位 11001010 变成了偶数个1,能检测出错误
偶校验 正确码流 01000001
错1位 01000011 变成了奇数个1,能检测出错误
错2位 01000010 变成了偶数个1,检测不出错误
错3位 01001010 变成了奇数个1,能检测出错误
海明码,是一种利用奇偶性来检错和纠错的校验方法。
首先要了解一下,海明码由校验码和题目给出的原数据组合而成。
例如:
用偶校验方式的海明码校验数据01101001
1. 第一步:确定校验码的位数k
首先
题目中的原数据01101001的位数n=8,这8位数分别用Di表示。(注意顺序是反着的,也就是依次为D7,D6,D5,D4,D3,D2,D1,D0)
知识点来了
校验码位数k与原数据n的关系为:
R语言数据分析案例
海明码校验(通俗易懂)
六号当铺�许墨
原创
关注
7点赞·3807人阅读
管你以前会不会,看完都变会。哈哈哈哈哈
海明码,是一种利用奇偶性来检错和纠错的校验方法。
首先要了解一下,海明码由校验码和题目给出的原数据组合而成。
例如:
用偶校验方式的海明码校验数据01101001
1. 第一步:确定校验码的位数k
首先
题目中的原数据01101001的位数n=8,这8位数分别用Di表示。(注意顺序是反着的,也就是依次为D7,D6,D5,D4,D3,D2,D1,D0)
知识点来了
校验码位数k与原数据n的关系为:
可以将k=1,2,3,4,5等代入很快就求得k=4是最小的满足者,第一步完成。
2. 第二步:确定校验码以及原数据的位置
综上所述
海明码共8+4=12位,分别用Hi表示;
校验码4位分别有Pi表示;
原数据8位有D(0-7)表示。
小知识
校验码总是放在海明码下标为2的幂次方的位置,如:1,2,4,8…
先安排校验码的位置
H1 P1
H2 P2
H3
H4 P3
H5
H6
H7
H8 P3
H9
H10
H11
H12
剩下的是题目中给出的原数据的位置哦
H1 P1
H2 P2
H3 D0——1
H4 P3
H5 D1——0
H6 D2 ——0
H7 D3 ——1
H8 P4
H9 D4——0
H10 D5——1
H11 D6——1
H12 D7——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验证。
由以上得出
需验证的数据 由那个校验码验证
D0 P1,P2
D1 P1,P3
D2 P2,P3
D3 P1,P2,P3
D4 P1,P4
D5 P2,P4
D6 P1,P2,P4
D7 P3,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)
登录后复制
结论
-若采用的是偶校验,四个校验位Gi全为0,表示收到的数据正确
-若采用的是奇校验,四个校验位Gi全为1,表示收到的数据正确