摘要:下面是希赛软考学院为大家整理的软考程序员教程知识点精讲之海明码,希望能帮助学友们。
>>>>>希赛网改版上线5周年庆,感恩钜惠!全场买就减,较高立减500,还有1元秒杀,5折限时抢购,众多“豪”礼等你来享,进入抢购!
下面是希赛软考网为大家整理的软考程序员教程知识点精讲之海明码,希望能帮助学友们。具体内容如下:
海明码
海明码是奇偶校验的另一种扩充,和奇偶校验不同之处在于海明码采用多位校验码的方式,在这些校验位中的每一位都对不同的信息数据位进行奇偶校验,通过合理地安排每个校验位对原始数据进行校验位组合,可以达到发现错误,纠正错误的目的。
假设数据位有m位,如何设定校验位k的长度才能满足纠正一位错误的要求呢?我们这里做一个简单的推导。
k位的校验码可以有
个值。显然,其中一个值表示数据是正确的,而剩下的
-1个值意味着数据中存在错误,如果能够满足:
-1>m + k (m + k为编码后的总长度),在理论上k个校验码就可以判断是哪一位(包括信息码和校验码)出现问题。
确定了k的值后,如何确定每k位中的每一位对哪些数据进行校验呢?这是一个问题。上面的推导只是说能够做的,那么如何达到纠错的目的呢?但是,考试中都会列出海明校验方程。例如:

其中⊕表示逻辑加。
在一般情况下,校验码会被插入到数据的1、2、4、8、…、2n位置,那么,在数据生成时,按照提供的海明校验方程计算出b1、b2、b4、…、bn,在数据校验时,按照海明检验方程进行计算,如果所有的方程式计算都为0,则表示数据是正确的。如果出现1位错误,则至少有一个方程不为0.海明码的特殊之处在于,只要将①②③三个方程左边计算数据按③②①排列,得到的二进制数值就是该数据中出错的位,例如第6位出错,则③②①为110为二进制数6.
当出现两位错误时,这种海明码能够查错,但无法纠错。
希赛软考网,拥有十四年软考培训经验,希赛网一直坚持自主研发,将丰富的软考培训经验有效融入教程研发过程,自成体系的软考在线题库(软考历年真题)、软考培训教材和软考视频教程,多样的培训方式包括在线辅导、面授、和,使考生的学习更具系统性,辅导更具针对性。采用全程督学机制,,软考平均通过率在全国。
软考不知道考啥科目?扫码测最适合你的报考科目

通关资源:软考各科历年真题 | 各科学习资料汇总 | 在线试题库【点击刷题】
免费课程:系统架构设计师报考指南 | 2026年高项备考指导课及精讲试听
热门活动: 新年新起点,大额满减有惊喜![]()
软考备考资料免费领取
去领取
专注在线职业教育25年