存储器的校验——汉明码(Hanming Code)

汉明码可以检查出2个位的错误并且纠正1个位。
我们直接结合一个实例来分析步骤,有一个字节的数据如下:
10011010
我们要添加几个位,来检查出错误。
添加位的规则是:
1.首先空出2的整数倍的数,这些数将用来校验奇偶,这些位我们称它为奇偶校验位。(1,2,4,8,16,32,etc),其他的空位填写数据位。

_ _1_001_1010

2.每一个奇偶校验位会检查_ _1_001_1010中的特定的一组数(group),
一般情况下,这组数是这样的:
Group1: 1,3,5,7,9… 检验奇数位
Group2: 2,3,6,7,10,11… 检验两个,跳过两个,检验两个,跳过两个
Group3: 4,5,6,7,12,13,14,15…检验4个,跳过4个
Group4: 8,9,10,11,12,13,14,15…检验8个,跳过8个

比如我们想要进行偶校验,就要求我们每一个Group的1的个数是偶数个,那么:

第1组检验位为 1,3,5,7,9,11: (其中第一个就是待定的校验位,下面每组都是)
? _ 1 _ 0 0 1 _ 1 0 1 0. 看看1,3,5,7,9,11各位,发现正好是偶数个1,所以校验位1设为0就行了: 0 _ 1 _ 0 0 1 _ 1 0 1 0
第2组检验位为 2,3,6,7,10,11:
0 ? 1 _ 0 0 1 _ 1 0 1 0. 发现是奇数个1,于是设置校验位2为1,这样算上校验位的1,恰好是偶数个1: 0 1 1 _ 0 0 1 _ 1 0 1 0
第3组检验位为 4,5,6,7,12:
0 1 1 ? 0 0 1 _ 1 0 1 0. 发现是奇数个1,于是设置校验位

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值