MyException - 我的异常网
当前位置:我的异常网» 综合 » 海明校验码-确定校验位

海明校验码-确定校验位

www.MyException.Cn  网友分享于:2013-10-09  浏览:18次
海明校验码--确定校验位

           计算机组成中的海明校验码,相信学过的都会有了解,那么对其中校验位的确定,我想似乎有些人不是很明白,今天我来详细的把如何确定校验位分享一下

    首先看下基本的概念  :

    2^r≥k+r+1  

其中r为校验位 ,k为信息位  信息位是已知的,那么如何确定校验位呢,用一个例子来说明 


例如:二进制码1011  求它的海明编码 步骤如下:


1、首先确定信息位,也就是1011了,那么随之K的长度也就知道了是4位

2、确定校验码是几位  根据上述公式我们去试最接近而且满足条件的值,1011的校验位是3,也就是r=3,这样刚好满足了条件  

3、确定了校验位的位数之后就是来确定校验位的值以及分配校验位了  

   首先来看分配校验位:  一般来说校验位都是放在2^n的位置处,也就是1、2、4、8....  

   其次就是确定分组(也就是确定校验位的值) 

 通过初步的解题我们知道了校验位+信息位一共是7位,那么我们首先来画一个表,分别把这些数据填进去  

   

注释:  我分别把七个位置用1~7来表示了  在填写信息为的时候也要把高位的数据填到高的位置 ,例如1011  就要类似图中的填法  


 确定校验位的分组原则:

  1.每个位置的校验位确定: 要想校验第几位 (i)  那么i就等于校验位所在位置的加和    举个简单的例子,加入我要教研第3位,那么3=1+2  也就是3 由第一个和第二个校验位来校验,照这样的算法,以此类推,我们就可以知道每个位置都需要哪个校验位来校验了 


     下面是1011的校验位分配表

 


按上述方法分配好后,我们已经明确的知道了每个位置都需要利用哪些位置来校验,下面也是关键的一步了 


我们要把这些数据汇总起来,也就是每个校验位都校验了哪些位置,就分别把这些位置的值按亦或计算(也就是相同的值就为0  ,不相同时就取1)  这样就得到了每个校验位的值了 


  下面我们来看看,每个校验位都分别校验了哪些位置 :



由此表可以看出对于校验位所要校验的位置,已经确定了,余下的就是计算检验位的值了,(利用亦或运算) 


可得到r1  r2  r3 的值分别为 1,0,0  (如果此处你不会亦或运算,那么建议百度查一查,练习一个简单的例子就会和明白了) 


到此位置,我们就求出了校验位的值,同时海明码也就出来了 


那么对于海明码的验证纠错等知识我就不在这里介绍了,以上就是我对此部分知识的理解,欢迎交流学习




文章评论

程序员都该阅读的书
程序员都该阅读的书
Java程序员必看电影
Java程序员必看电影
老程序员的下场
老程序员的下场
我的丈夫是个程序员
我的丈夫是个程序员
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
 程序员的样子
程序员的样子
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
程序员必看的十大电影
程序员必看的十大电影
一个程序员的时间管理
一个程序员的时间管理
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
总结2014中国互联网十大段子
总结2014中国互联网十大段子
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
那些争议最大的编程观点
那些争议最大的编程观点
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
程序员的鄙视链
程序员的鄙视链
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
鲜为人知的编程真相
鲜为人知的编程真相
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
代码女神横空出世
代码女神横空出世
写给自己也写给你 自己到底该何去何从
写给自己也写给你 自己到底该何去何从
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
如何成为一名黑客
如何成为一名黑客
10个调试和排错的小建议
10个调试和排错的小建议
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
为什么程序员都是夜猫子
为什么程序员都是夜猫子
编程语言是女人
编程语言是女人
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
漫画:程序员的工作
漫画:程序员的工作
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
程序员应该关注的一些事儿
程序员应该关注的一些事儿
中美印日四国程序员比较
中美印日四国程序员比较
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有