计算机体系结构(四)——海明码
2015-10-18 00:00
232 查看
海明码(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 。
【校验数据】
待续...
版权声明:本文为博主原创文章,未经博主允许不得转载。
【计算海明码】
(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 。
【校验数据】
待续...
版权声明:本文为博主原创文章,未经博主允许不得转载。
相关文章推荐
- 计算机体系结构(一)——进制
- 数据结构之排序算法
- 计算机体系结构(二)——码制
- HttpClient之Get请求和Post请求示例
- httpclient中使用HTTPS的方法
- 计算机体系结构(三)——循环冗余校验
- Linux卸载系统自带的httpd的方法
- Android基础学习之Socket、Http、Json网络编程
- Asp.net MVC 自定义错误页面以及return HttpNotFound遇到的问题
- 黑马程序员_Socket网络通信
- 3D游戏与计算机图形学中的数学方法-点线面
- 让Windows 10更适合平板工作环境——休眠分区和Intel Rapid Start Techn
- 黑马程序员_http请求响应参数解读
- 实现三级缓存
- 线段树
- shell学习-转自http://c.biancheng.net/cpp/shell/
- android开源框架android-async-http使用案例介绍
- 数据结构基础8_循环队列(顺序实现)
- ListView显示网络数据出现数据堆积问题,求助!求助!!求助!!!
- 真实流量压测工具 tcpcopy应用浅析