海明码计算

174 阅读1分钟

计算0110011的海明校验码(偶校验)

1. 确认校验位数

海明码校验公式:2r1k+r2^r - 1 \geq k + r

其中r为校验位的个数,k为原始数据位个数

题目中原始数据位为7位,可以得到r=4

2. 校验码插入位置

校验码是放在2的次方位置上的,如1、2、4、8、16...

image.png

先插入校验码,再将原始数据从左至右放入,p1、p2、p3、p4为校验位。

3. 确认数据位由哪几个校验位校正

image.png

将数据位的编码写成2进制格式,可以得到3=20+213 = 2^0 + 2^15=20+225 = 2^0 + 2^26=21+226 = 2^1 + 2^27=20+21+227 = 2^0 + 2^1 + 2^29=20+239 = 2^0 + 2^310=21+2310 = 2^1 + 2^311=20+21+2311 = 2^0 + 2^1 + 2^3,表格汇总如下:

位置用到的校验码
31,21 + 2
51,41 + 4
62,42 + 4
71,2,41 + 2 + 4
91,81 + 8
102,82 + 8
111,2,81 + 2 + 8

根据表格可以看出每个校验码校验了哪几个位置

校验码校验位置
p13,5,7,9,11
p23,6,7,10,11
p35,6,7
p49,10,11

4. 计算校验码(偶校验)

image.png

image.png

image.png

image.png

得到最终的海明编码

image.png