美文网首页
奇偶校验码和海明码

奇偶校验码和海明码

作者: b_walking | 来源:发表于2022-04-06 23:09 被阅读0次

当计算机在传送比特数据时,如果有一个比特位出错了该怎么发现?
这里有一个前提,计算机在传输一段适当长度的比特数据时,有一个比特位出错的概率很低,同时有两个比特位出错的概率极低,所以实践中我们只需考虑一个比特位出错时的情况。
解决的办法之一是每一个比特位都接连传送两次,比如要想传送1,实际就传送11,这样如果前后两个比特位值一样,就可认为比特位没出错。这种方法类似于在用户注册时,输入一遍密码后,还要再输入一遍确认密码,两遍密码输入一样即认为用户没有输错。
但是这个方法会带来一个问题,就是使传输数据量翻倍。
一个解决办法就是使用奇偶校验码,通过增加一个校验比特位的方式,将一段二进制数据中的1凑成偶数(偶校验),或是凑成奇数(奇校验),前面举的只传输一个比特位的例子实际上即为偶校验的一个特例。
但是这个方法又会带来一个问题,虽然附加的校验位少了,但是一旦错了就要重传一整段数据,开销还是比较大。
解决的思路是能否在发现错的同时,还知道错哪了?这样在本地即可进行修正,不需要再重新传。
一是考虑有两个二进制编码,如果一个编码只需要变动一个比特位即可变为另一个编码,那么在传送这两个编码时,即使传错了也没法发现,接收方会以为要传的就是传错的那个。如果一个编码需要变动两个比特位才能变成另一个编码,那么在传送一个编码时,如果传错了是可以发现的,因为错了一个比特位,就哪个编码都不是了,但这时只是知道传错了,并不知道想传的是哪个,因为任何一个编码错一个比特位都可以是现在收到的这个错误码。接下来继续把距离拉大,如果一个编码需要变动三个比特位才能变成另一个编码,这时如果在传送时错了一个比特位,就不仅可以知道传错了,还可以知道是传哪个码时出的错,只为只有一个码在错一个比特位时才能变成现在这个错误的码。
上面提到的这个距离,就叫做码距。所以要想实现即知道错了,又知道哪错了,码距至少为3.
一个叫海明的人研究了几年,根据这个思路,发明了海明码。
海明码利用奇偶校验码来发现错误,利用校验码的排列组合,来标记出错的位置。
举一个简单的例子,如果一个二进制码有7位,则共有7种出错的可能和1种不错的可能,共8种可能。这8种可能通过3个校验码的排列组合即可实现。所以7位海明码中有3个校验位,4个数据位。

相关文章

  • 三种校验码

    奇偶校验、海明码、CRC循环冗余校验码 三种校验码比较重要,需要牢记,在计算机网络中用处较大 奇偶校验 根据被传输...

  • 奇偶校验码和海明码

    当计算机在传送比特数据时,如果有一个比特位出错了该怎么发现?这里有一个前提,计算机在传输一段适当长度的比特数据时,...

  • 关于海明码的原理和计算

    海明(汉明)码是广泛采用的一种有效的校验码,它实际上是一种多重奇偶校验码。 海明码的原理就是在有效信息位中加入几个...

  • 数据链路层

    奇偶校验码:只能检查出奇数个比特错误,检错能力为50%。 循环冗余码:发现单比特错误,近似1。 海明码:发现双比特...

  • 大数据算法系列10:字符串检验算法

    一. 字符串检验算法 字符串检验算法: 奇偶校验:磁盘阵列的Raid5就是使用了奇偶校验。 海明码: 二. 练习 ...

  • 2计算机组成与结构

    考点分部 计算机硬件组成、运算器、控制器奇偶校验、循环冗余校验、海明码指令系统:指令操作数寻址方式、CISC和RI...

  • 一文知晓CRC码计算及校验原理

    奇偶校验码(PCC)只能校验一位错误,而循环冗余校验码(CRC)的检错能力更强,可以检出多位错误。 1. CRC校...

  • 校验码

    概念:能够发现或者自动纠错的数据编码 原理:通过添加一些冗余码,实现检验或者纠错编码 分类:1.奇偶校验码奇校验码...

  • 网络规划设计师知识点—存储技术—Raid3

    RAID3(带奇偶校验码的并行传送)。这种校验码与RAID2不同,只能查错不能纠错。它访问数据时一次处理一个带区,...

  • 超级无敌简单易懂的海明码的校验和纠错原理与实现

    最近和朋友的聊天涉及到了海明码纠错,先来康康海明纠错码到底是什么 海明码 Hamming Code,电信领域的一种...

网友评论

      本文标题:奇偶校验码和海明码

      本文链接:https://www.haomeiwen.com/subject/tqidsrtx.html