【计算机组成原理】海明码效验(检二纠一)

题目:

假设数据为11001010,如果采用海明校验,实现检出2个错纠正1个错,至少需要设置多少位校验位,应放在哪些位置上,写出生成的海明码。(要求写出海明码求得的过程)

答案解析:

计算校验位数量与位置:

检二纠一公式 :

2^{^{k-1}}>=m+k 

(检一纠一公式:2^{k}>=m+k+1

计算出k值(m为原始数据长,k为校验位数。本题m=8)

k=5   

海明码长度:

m+k=13

P1,P2,P3,P4,P5分别在H1,H2,H4,H8,H13(13是最后一位,足够长应该是C16)

得出海明码应有13位及校验码对应位置:

H13H12H11H10H9H8H7H6H5H4H3H2H1
P5D8D7D6D5P4D4D3D2P3D1P2P1
11001010

计算校验位值:

根据1~12对应的二进制数:

1.0001
2.0010
3.0011
4.0100
5.0101
6.0110
7.0111
8.1000
9.1001
10.1010
11.1011
12.1100

计算:

P1(0001)=H1+H3+H5+H7+H9+H11= 1

//对应二进制最后一位为1,H1就是校验位P1本身不用计算

P2(0010)=H2+H3+H6+H7+H10+H11=0     

P3(0100)=H4+H5+H6+H7+H12 =1

P4(1000)=H8+H9+H10+H11+H12 =0

P5(前12位或)=H1+H2+……+H12=0

海明码如下: 

H13H12H11H10H9H8H7H6H5H4H3H2H1
0110001011001
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

拉进人山人海

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值