奇偶校验码
例题:
假定下列字符码中最后一位是奇偶校验码,但没有数据错误,采用奇校验码的字符码是( )
A.11001111
B:11101100
C:11100111
D:11000101
奇偶校验码用于并行码的检错。原理是:在k位数据码之外增加1位校验位,使k+1位码字中取值为1的位数总保持在偶数(偶校验)或奇数(奇校验)。
A:有6位1,偶校验
B:有5位1,奇校验
C:有6位1,偶校验
D:有4位1,偶校验
所以,采取奇校验的是B
海明码
例:
某个海明码的排列方式,D9D8D7D6D5D4P4D3D2D1P3D0P2P1,数据位D8的由____进行校验。
- 首先,认识数据位和校验位;
海明码的编码规则:PkPk-1…P1,k个校验位。Dn-1Dn-2…D0n个数据位。
产生的海明码Hk+nHk+n-1…H1
将例题代入,可以得到
|H14| H13|H12 | H11|H10|H9|H8|H7|H6|H5|H4|H3|H2|H1|
|–|–|–|–|–|–|–|–|–|–|–|–|–|–|–|–|–|
| D9 |D8|D7| D6|D5|D4|P4|D3|D2|D1|P3|D0|P2|P1|
- 第二步确定校验关系
海明码 | 下标 | 校验位组 | 对应关系P4P3P2P1 |
---|---|---|---|
H1(P1) | 1 | P1 | 0001 |
H2(P2) | 2 | P2 | 0010 |
H3(D0) | 3=1+2 | D1 | 0011 |
H4(P3) | 4 | P3 | 0100 |
H5(D1) | 5=1+4 | D1 | 0101 |
H6(D2) | 6=2+4 | D2 | 0110 |
H7(D3) | 7=1+2+4 | D3 | 0111 |
H8(P4) | 8 | P4 | 1000 |
H9(D4) | 9=1+8 | D4 | 1001 |
H10(D5) | 10=2+8 | D5 | 1010 |
H11(D6) | 11=1+2+8 | D6 | 1011 |
H12(D7) | 12=4+8 | D7 | 1100 |
H13(D8) | 13=1+4+8 | D8 | 1101 |
H14(D9 ) | 14=2+4+8 | D9 | 1110 |
- 第三步,确定校验位的取值,从上面的表中可以得到P4P3P2P1参与校验的位
P1校验:P1,D0,D1,D3,D4,D6,D8
P2校验:P2,D0,D2,D3,D5,D6,D9
P3校验:P3,D1,D2,D3,D7,D8,D9
P4校验:P4,D4,D5,D6,D7,D8,D9
若使用偶校验:
P1=D0⊕D1⊕D3⊕D4⊕D6⊕D8
P2=D0⊕D2⊕D3⊕D5⊕D6⊕D9
P3=D1⊕D2⊕D3⊕D7⊕D8⊕D9
P4=D4⊕D5⊕D6⊕D7⊕D8⊕D9
奇校验便是偶校验得到后的结果取反。
所以,题目的答案就是:P1P3P4
海明码的检测错误
按照上述第三步的描述下,
G1=P1⊕D0⊕D1⊕D3⊕D4⊕D6⊕D8
G2=P2⊕D0⊕D2⊕D3⊕D5⊕D6⊕D9
G3=P3⊕D1⊕D2⊕D3⊕D7⊕D8⊕D9
G4=P4⊕D4⊕D5⊕D6⊕D7⊕D8⊕D9
若偶校验:G1~G4全为0
若奇校验:G1~G4全为1
例如:当G1G2G3G4=0101,从上述表中找到P1P3对应H5的匹配项及D1出错