博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
计算机体系结构(四)——海明码
阅读量:6894 次
发布时间:2019-06-27

本文共 789 字,大约阅读时间需要 2 分钟。

hot3.png

    海明码(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、2位置。
    ②. 求校验位:
    设校验位分别为b1,b2,b3,则插入到信息位中后,请看图:
    
    H的下标以2的幂次方形式展开:
    H1:2—— b1
    H2:2—— b2
    H3:21+2—— b1+b2
    H4:2—— b3
    H5:22+20  —— b3+b1
    H6:22+2——  b3+b2
    H7:22+21+2——  b3+b2+b1
    其中与 b1 有关的复合式有H3,H5,H7,与 b2 有关的有H3,H6,H7,与 b3 有关的有H5,H6,H7。将H换为对应的信息位,则:
     b1 =DDD3 = 101=0
     b2 =DDD3 = 111=1
     b3 =DDD3 = 011=0
所以最终的海明码为:1100110 。
【校验数据】
    待续...

版权声明:本文为博主原创文章,未经博主允许不得转载。

转载于:https://my.oschina.net/u/2260184/blog/518473

你可能感兴趣的文章
mysql 主从一致性检查以及修复
查看>>
关于eWebEditorAPI
查看>>
生成文件的MD5、SHA、SHA256
查看>>
Go语言类型(布尔、整型、数组、切片、map等)
查看>>
根据段落编号自动添加书签的VBA
查看>>
JS(JavaScript)的j进一步了解9(更新中···)
查看>>
Hadoop源码阅读-HDFS-day2
查看>>
BZOJ2893:征服王(费用流)
查看>>
maven profile切换正式环境和测试环境
查看>>
无法启动WP Emulator
查看>>
杭电1856--More is better
查看>>
js选择排序
查看>>
gradle使用总结
查看>>
F - DFS枚举 CSU - 2087: Tragedy Words
查看>>
mongodb随机查询一条记录的正确方法!
查看>>
邮件发送案例
查看>>
AutoMapper在asp.netcore中的使用
查看>>
如何使用 Log4j
查看>>
DevOps 工程师成长日记系列一:必备知识与技能组合
查看>>
足球队(党) 动态规划 DP (这道题我做不动,残念)
查看>>