海明码(软件设计师)

海明码

海明码(Hamming Code)是由贝尔实验室的Richard Hamming设计的,是一种利用奇偶性来验错和纠错的校验方法.海明码的构成方法是在数据位之间的特点位置上插入K个校验位.通过扩大码距来实现检错和纠错.

设数据位是n位,校验位是k为,则n和k必须满足一下关系

2 k − 1 > = n + k 2^{k}-1>=n+k 2k1>=n+k
海明码的编码规则如下
设k个校验位为 p k p k − 1 . . . . p 1 p_k p_{k-1} ....p_1 pkpk1....p1
设n个数据位 D n − 1 D n − 2 . . . . D 2 D 1 D_{n-1} D_{n-2} ....D_2D_1 Dn1Dn2....D2D1
对应的海明码为 H n + k H n + k − 1 . . . . H 1 H_{n+k} H_{n+k-1} ....H_1 Hn+kHn+k1....H1
(1) p i 在 海 明 码 的 第 2 i − 1 的 位 置 , H j = P i , 且 j = 2 i − 1 , 数 据 位 则 依 序 从 低 到 高 占 据 海 明 码 中 剩 下 的 位 置 p_i在海明码的第2^{i-1}的位置,H_j=P_i,且j=2^{i-1},数据位则依序从低到高占据海明码中剩下的位置 pi2i1,Hj=Pi,j=2i1,
(2)海明码中的任何一位都是由若干个校验为来校验的.其对应关系如下:被校验的海明码的下标等于所有参与校验该为的校验为的下标之和,而校验位由自身校验.
在这里插入图片描述来一个Demo
求101101100的海明码
解题思路:
(1)求校验位的个数,
(2)将列出海明码,既校验位和数据位混合在一起,类似于下图的H代表的位置,未求出的校验位的位置用k代表
(3)写出每一个海明码对应的校验位组合
(4)写出每一个校验的算式,进行异或运算,得出每个k的值,最后写出海明码
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值