快速学会海明校验

简介: 快速学会海明校验

海明校验

简介:本文旨在用最简洁的篇幅向大家介绍,如何快速的学会海明校验,并会做相关的题目。

海明码简介:海明码是一种多重(复式)奇偶检错系统,用于检错和纠错。

原理:在 k位数据中增加 r位校验位构成 n + k位码字,附加的 r位校验位能够均匀的拉大,每个校验位对码字中的若干位进行奇偶校验,这样当某一位出错后,会引起几个校验位的值的变化。这样既能检测出错误,又可以位纠错提供依据。

计算方法:

我们以一个具体的题目为例子来看:

真题演练

对于01100111,计算他的海明码。

第一步:

计算长度

通过公式计算海明码的校验码的长度r:

  • 校验位数:假设有r位校验码,k位有效数据位,则有关系:
  • 2r - 1 ≥ k + r

k = 8可以得到r=4

第二步:

画表格

编码前为:01101110

0 1 1 0 x 1 1 1 x 0 x x
二进制 1100 1011 1010 1001 1000 0111 0110 0101 0100 0011 0010 0001
海明码 H12 H11 H10 H9 H8 H7 H6 H5 H4 H3 H2 H1
对应位 D8 D7 D6 D5 P4 D4 D3 D2 P3 D1 P2 P1
G1组
G2组
G3组
G4组

规则为:计算出每一位的二进制数,然后对于G1那么就选择出对应位为D的,然后对应的H的二进制第一位为1的,在下面打上√。

异或的原理为:

P1 = D7⊕D5⊕D4⊕D2⊕D1 = 1详细过程:1⊕0⊕1⊕1⊕0=1

P2 = D7⊕D6⊕D4⊕D3⊕D1 = 0

P3 = D8⊕D4⊕D3⊕D2 = 1

P4 = D8⊕D7⊕D6⊕D5 = 0

第三步:

获得海明码,将P的位置替换好。

011001111001

第四步:

海明码的验错:

原理:

  • 将对应的校验位进行异或运算,即 Si = Pi ⊕ Pi’
  • 若四位校验码为 0000,则表明该码字传输无误
  • 若四位校验码不全为零,则将校验码的结果按低位到高位排布,即 S4S3S2S1,将此校验码转化成十进制数,表示海明码对应位数出现了错误。

假设发送海明码为1100110,接受海明码为1100100,这个时候G3G2G1=000,信息正确,从中提取有效信息为1101(也就是去掉P位之后,剩下的D位)

若海明码位1110110(D4D3D2P3D1P2P1),有效信息为1111(D4D3D2D1)

G3 = P3⊕D2⊕D3⊕D4=0⊕1⊕1⊕1=1

G2 = P2⊕D1⊕D3⊕D4=1⊕1⊕1⊕1=0

G1 = P1⊕D1⊕D2⊕D4=0⊕1⊕1⊕1=1

对应G3G21=101(十进制为5,对应D2),然后将D2求反获得信息为1101。

如果大家觉得有用的话,可以关注我下面的微信公众号,极客李华,我会在里面更新更多行业资讯,企业面试内容,编程资源,如何写出可以让大厂面试官眼前一亮的简历等内容,让大家更好学习编程,我的抖音,B站也叫极客李华。大家喜欢也可以关注一下

相关文章
|
3天前
奇偶校验,CRC循环冗余校验,海明码校验
奇偶校验,CRC循环冗余校验,海明码校验
9 0
|
4天前
|
存储 算法 Serverless
数据校验的艺术:从奇偶校验到CRC校验与海明校验
数据校验的艺术:从奇偶校验到CRC校验与海明校验
149 0
|
8月前
|
JavaScript 前端开发
身份证第18位校验码如何计算
身份证第18位校验码如何计算
33 0
|
4天前
|
算法
常用的简单校验算法:校验和,异或校验,crc校验,LRC校验,补码求和,checksum
常用的简单校验算法:校验和,异或校验,crc校验,LRC校验,补码求和,checksum
251 1
|
7月前
CRC循环冗余码计算
CRC循环冗余码计算
62 0
|
7月前
|
索引
海明校验码检错和纠错的工作原理
海明校验码检错和纠错的工作原理
78 0
|
8月前
|
算法
海明校验码
海明校验码
52 0
|
10月前
【软考学习7】数据校验——海明校验码、循环校验码、奇偶校验码
【软考学习7】数据校验——海明校验码、循环校验码、奇偶校验码
275 0
|
11月前
循环码的编码、译码与循环冗余校验
循环码的编码、译码与循环冗余校验
98 0
循环码的编码、译码与循环冗余校验
<<计算机网络>>差错控制---奇偶效验码/循环冗余码ORC/海明码
<<计算机网络>>差错控制---奇偶效验码/循环冗余码ORC/海明码
137 0
<<计算机网络>>差错控制---奇偶效验码/循环冗余码ORC/海明码