明码是一种纠错码,用于确保传输或存储过程中数据的准确性。汉明码可检测并纠正数据从发送方移动或存储到接收方时可能发生的错误。这种简单有效的方法有助于提高通信系统和数字存储的可靠性。它向原始数据添加了额外的位,允许系统检测和纠正单位错误。这是理查德·汉明 (Richard Hamming) 在 1950 年代开发的一种技术。
什么是冗余位?
冗余位是额外的二进制位,生成并添加到数据传输的信息承载位中,以确保在数据传输过程中不会丢失任何位。可以使用以下公式计算冗余位的数量:
2r ≥ m + r + 1其中 m 是 input data 中的位数,r 是冗余位数。
假设数据位数为 7,那么冗余位数可以通过以下方式计算:= 24≥ 7 + 4 + 1 。因此,冗余位的数量为 4。
奇偶校验位的类型
奇偶校验位是附加到二进制位数据上的位,以确保数据中 1 的总数是偶数或奇数。奇偶校验位用于错误检测。奇偶校验位有两种类型:
- 偶数奇偶校验位:在偶数奇偶校验的情况下,对于给定的一组位,将计算 1 的数量。如果该计数为奇数,则奇偶校验位值设置为 1,使 1 的出现总数为偶数。如果给定一组位中 1 的总数已经是偶数,则奇偶校验位的值为 0。
- 奇偶校验位:在奇奇偶校验的情况下,对于给定的一组位,将计算 1 的数量。如果该计数为偶数,则奇偶校验位值设置为 1,使 1 的出现总数成为奇数。如果给定 bits 集中的 1 总数已经是奇数,则奇偶校验位的值为 0。
汉明码算法
汉明码只是使用额外的奇偶校验位来识别错误。
第 1 步:以二进制形式(1、10、11、100 等)写入从 1 开始的位位置。
第 2 步:所有 2 次方的位位置都标记为奇偶校验位(1、2、4、8 等)。
第 3 步:所有其他位位置都标记为数据位。
第 4 步:每个数据位都包含在一组唯一的奇偶校验位中,以确定其二进制形式的位位置:
- a. 奇偶校验位 1 涵盖其二进制表示形式在最低有效位置(1、3、5、7、9、11 等)中包含 1 的所有位