《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 解决方案 > 计算机体系结构(四) 海明码知识

计算机体系结构(四) 海明码知识

2017-06-22
关键词: 汇编语言

海明码(Hamming Code )是一种常用数据校验的编码。它是在信息位为k位,增加r位冗余位(校验码),构成一个n=k+r位的码字。它可以用于检验数据的正误和判别错误位置。

【计算海明码】

(1)校验位的确定

最终生成的海明码是n位,其中k位信息位+r位冗余位(校验码)。r位的校验位可以表示 2r 个数,但是只有一种表示是正确的,剩余2r -1都是错误的,所以若有2r -1>k+r,即可判别错误位置。

(2)校验位的生成

举例说明吧:有效信息位为1101,求它的校验位。

①. 求所需校验位的长度、确定校验位位置:

根据公式2r -1>k+r,其中k=4,则r=3(这里求r的最小整数值)。即需要3位校验位。校验位的位置并不是直接插在信息位的后面,而是以2的幂次方嵌入到信息位中。即分别嵌入到20、21、22 位置。

②. 求校验位:

设校验位分别为b1,b2,b3,则插入到信息位中后,请看图:

H的下标以2的幂次方形式展开:

H1:20 —— b1

H2:21 —— b2

H3:21+20 —— b1+b2

H4:22 —— b3

H5:22+20  —— b3+b1

H6:22+21 ——  b3+b2

H7:22+21+20 ——  b3+b2+b1

其中与 b1 有关的复合式有H3,H5,H7,与 b2 有关的有H3,H6,H7,与 b3 有关的有H5,H6,H7。将H换为对应的信息位,则:

b1 =D0 ⊕D1 ⊕D3 = 1⊕0⊕1=0

b2 =D0 ⊕D2 ⊕D3 = 1⊕1⊕1=1

b3 =D1 ⊕D2 ⊕D3 = 0⊕1⊕1=0

所以最终的海明码为:1100110 。

【校验数据】


本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。