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

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

海明码校验

    当计算机存储或移动数据时,可能会产生数据位错误。这时能够利用汉明码来检測并纠错,简单的说,汉明码是一个错误校验码码集。

    了解海明码之前先了解一下异或:

    异或的数学符号为“⊕”。计算机符号为“xor”。其运算法则为:

    a⊕b = (¬a ∧ b) ∨ (a ∧¬b)

    假设二进制下用1表示真,0表示假。则异或的运算法则为:

    0⊕0=0,

    1⊕0=1,

    0⊕1=1。

   1⊕1=0(同为0,异为1)。

 

 海明码的编码步骤

  1. 依据信息位数,确定校验位数,2r -1>k+r。当中,k为信息位数,r为校验位。

求出满足不等式的最小r。即为校验位数。

计算校验位公式如表所看到的。

9

8

7

6

5

4

3

2

1

位数

I5

 

I4

I3

I2

 

I1

 

 

信息位

 

r3

 

 

 

 r2

 

 r1

r0

校验位

2.  求校验位。依据上面所说的计算公式求出校验位。

3.  求海明码。依据上面表格的填充。写出海明码。

我们以希塞视频中的样例来理解:

举例:若有效信息位为1101,求它的校验位

依据上面的步骤我们可知

1.  信息位为k=4位,那么2r -1≥k+r。求的r=3

2.  列表。

r位的校验位能够表示 2个数,和位数对齐后r0=1,r1=2,r2=4…等等。信息位即为我们上面的1101这4位信息。那么我们能够画出以下这张表

7

6

5

4

3

2

1

  位数

  I4(1)

  I3(1)

   I2(0)

 

  I1(1)

 

 

  信息位

 

 

 

   r2

 

  r1

  r0

  校验位

 我们知道r0=20,r1=21,r2=22

 而信息位与所相应的位数关系为3.中

  I4:7=22 +21+20

  I3: 6= 22 + 21

  I2: 5= 22+20

  I1:3 =21+20 

  r0就用具有出现20的信息位表示,因此

  r0=I4⊕I2⊕I1=1⊕0⊕1=0;

  r1=I4⊕I3⊕I1=1⊕1⊕1=1;

  r2=I4⊕I3⊕I2=1⊕1⊕0=0;

  注:异或的公式里面假设出现偶数的1。则结果为0,反之为1

 4. 将得到的校验码输入上表中,得出

  7

  6

  5

  4

  3

  2

  1

   位数

  1

  1

  0

 

  1

 

 

  信息位

 

 

 

   0

 

   1

  0

   校验位

  5.综上海明码结果为:1100110

关于纠错下篇介绍...

转载地址:http://vrevl.baihongyu.com/

你可能感兴趣的文章
面向服务的体系结构(SOA)——(4)对于服务的理解
查看>>
Linux网络设置1——Linux网络环境配置
查看>>
hdu 2112 HDU Today (floyd算法)
查看>>
找工作--Java相关
查看>>
paxos 实现
查看>>
网站框架策划时的小技巧--页面原型篇
查看>>
linux驱动移植的重要数据结构
查看>>
推荐25款很棒的 HTML5 开发框架和开发工具【上篇】
查看>>
PyRedisAdmin v1.0 Beta 发布,Redis 在线管理工具 - 开源中国社区
查看>>
组策略--下发文件到计算机
查看>>
数据库事务性
查看>>
封装CIImage实现实时渲染
查看>>
log4delphi使用(转)
查看>>
5月23日Google就宣布了Chrome 36 beta
查看>>
设计模式---工厂模式Factory(创建型)
查看>>
C++ Primer 学习笔记_91_用于大型程序的工具 --命名空间
查看>>
window.print实现打印特定控件或内容
查看>>
前端必读:浏览器内部工作原理
查看>>
Ubuntu下deb包的安装方法
查看>>
微软职位内部推荐-SDE II
查看>>