汉明码是一种在二进制传输中检测和纠正错误的方法,它通过在用于检查的序列中加入额外的二进制数字来实现,以及一种提供检测逻辑的算法,这种代码能够在任何位序列中发现两个错误并修复一个可能不正确的位。最常用的汉明码...
汉明码是一种在二进制传输中检测和纠正错误的方法,它通过在用于检查的序列中加入额外的二进制数字来实现,以及一种提供检测逻辑的算法,这种代码能够在任何位序列中发现两个错误并修复一个可能不正确的位。最常用的汉明码被称为汉明(7,4),其中四个表示起始位的原始数目,七个表示包含额外检查位后序列中的位总数。手持计算机的人从其创造者理查德·哈明那里得名,他在1950年发表了该方法。汉明码的工作方式是在序列中插入额外的校验位,称为奇偶校验位。校验位总是在2的幂次方注入,因此,任何数量的位都可以通过包含额外的奇偶校验位来验证。这可能会一直持续到最后一个加到序列中的奇偶校验位的位置是2的幂次方,这个位置小于或等于序列中的最终位置。当所有的奇偶校验位就位时,剩余的位置就是实际的数据位四位的例子,位位置1、2和4将是奇偶校验位,而位置3、5、6和7是数据。一旦建立了这个序列,汉明码的逻辑就开始工作。在汉明码中,添加到序列中的每个奇偶校验位都被用来检查一些位位置1的奇偶校验位每隔一位检查一次,基本上就是序列中每一个奇数编号的位置第二个奇偶校验位在第二位,检查第二位和第三位,然后跳过两个位置,再检查两个位置,再跳过两个位置,依此类推。如果第四位有一个奇偶校验位,它的行为类似于它检查第四到第七位,然后跳过四个位置,再检查四个位置,接着,序列中的每个奇偶校验位都以这种方式贯穿整个序列。汉明码检测和纠正错误的过程是将每次奇偶校验的校验序列中的位相加,每一个奇偶校验都必须是一个偶数。以7位为例,对于第一次奇偶校验,第1位、第3位、第5位和第7位相加。如果总和是偶数,则奇偶校验,但如果总数为奇数,则存在错误。由于奇偶校验重叠,将出现两个这样的错误。当未能得出偶数总和的两个奇偶校验位位置相加时,它将显示需要更正的位。在七位汉明码示例中,考虑第五位的位不正确。第1位、第3位、第5位和第7位的位之和将显示为奇数,第四位到第七位的位之和也是如此。这表示位置1和位置4的校验位的奇偶校验失败。当1和4相加时,总数是5,这是传输中需要更正的不正确位的位置
-
发表于 2020-08-07 08:21
- 阅读 ( 1257 )
- 分类:电脑网络