注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

薛沛然 廊坊师范学院 九期信息技术提高班

无脑地生活,像白痴一样成长,不给自己留感伤的时间。。。

 
 
 

日志

 
 

软考中的校验码(一)  

2014-04-24 23:58:09|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
软考中的校验码主要有三种奇偶校验码,海明码和循环冗余校验码。下面作下简单的总结。
奇偶校验码
奇偶校验码是三者中最简单的校验方法。其特点是在原有的基础上增加一位教验位。奇偶校验的规则是信息数据中各位中的1的个数为奇数,校验码为1否则为0;偶校验则正相反。
具体如下图
软考中的校验码 - 薛沛然 - 薛沛然 廊坊师范学院 九期信息技术提高班
奇校验码中,0的信息码中1的个数是0,因此校验位是1;1中1的个数是1,校验位是0;偶校验与奇校验完全相反。
海明码 
海明码也是利用奇偶性来检错和纠错的校验码。构成方法是在据位之间插入k个校验位,通过扩大码距来实现纠错
下面根据具体例子来学习海明码
设数据为01101001,试采用4个校验位求其偶校验方式的海明码。
步骤1 确定检验码的位数
根据公式,设数据位是n位,校验位是k位,则n和k必须满足以下关系
2^k-1>=n+k,因为数据8位,因此k最小是4
步骤2确定数据位与校验位的关系(特别注意,校验位从1开始,数据位从0开始)
设校验位是p,数据位是d,pi总是在海明码的第2^i-1位,已知有p1,p2,p3,p4,因此校验位与数据位的关系如下
d7 d6 d5 d4 p4 d3 d2 d1 p3 d0 p2 p1
步骤3确定校验位的值
因为已知
d7d6d5d4d3d2d1d0=01101001
根据被检验的海明码的下标等于所有参与校验位的下标之和,而校验位由自身校验可得下表
软考中的校验码(一) - 薛沛然 - 薛沛然 廊坊师范学院 九期信息技术提高班
 由图可知p1=d0+d1+d3+d4+d6=1+0+1+0+1=1
 由图可知p2=d0+d2+d3+d5+d6=1+0+1+1+1=0
由图可知p3=d1+d2+d3+d7=0+0+1+0=1
由图可知p4=d4+d5+d6+d7=0+1+1+0=0
最终求得海明码(偶校验)为
011001001101
步骤4对求得的海明码进行测试
设检验关系g1,g2,g3,g4
g1=p1+d0+d1+d3+d4+d6
g2=p2+d0+d2+d3+d5+d6
g3=p3+d1+d2+d3+d7
g4=p4+d4+d5+d6+d7
如果采用偶校验,只要将g1g2g3g4全都为0就为正确。如果g1g2g3g4=1010,则说明海明码的第10位错了。
循环冗余校验码
循环冗余验证码利用多项式为k个数据位产生r个校验位来进行编码,其编码长度为k+r.
总结 
奇偶验证是最简单的验证方法,只能验证正确与否,无法指出出错的位置。海明码在奇偶验证的基础上进行了深化,但只能找出一位出错点。循环冗余验证码既能验证出错与否,还能验证具体出错的位数。
  评论这张
 
阅读(81)| 评论(10)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017