海明码

如何计算海明码
  • 例如计算数据1011的海明码(根据偶校验,也就是取偶数个1)
  • 先计算出最少需要几位校验位,计算公式 2^k >= k + 数据位数 + 1
  • 1011的数据位为4,那么套入公式得出校验位最小为3
  • 根据公式得出需要3个校验位,校验位的插入位置为2^0 ,2^1, 2^2
  • _ _ 1 _ 0 1 1 在第1、2、4的位置插入校验码,这时数据位和校验位总和为7,所以从1到7的二进制分别为 1(0001),2(0010),3(0011),4(0100),5(0101),6(0110),7(0111)
  • p0 校验位(检查位置 1、3、5、7 的奇偶性,为什么是1、3、5、7,因为它们的二进制从右向左的第1位都为1):
    p0 = 1⊕0⊕1 = 0
  • p1 校验位(检查位置 2、3、6、7 的奇偶性,为什么是2、3、6、7,因为它们的二进制从右向左的第2位都为1):
    p1 = 1⊕1⊕1 = 1
  • p2 校验位(检查位置 4、5、6、7 的奇偶性,为什么是4、5、6、7,因为它们的二进制从右向左的第3位都为1):
    p1 = 0⊕1⊕1 = 0

所以1011的海明码为0110011

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容