- 用于验证传输二进制0101010101数据的正确性,并可以纠正1位。
- 例如原信息码k为10101,添加海明码k验证
- 利用公式2^k - 1 >= n + k求出海明码的长度k = 4(因为2^4 - 1>= 5+4 && 2^3 - 1 < 5+ 3所以需要4位校验码)
- 确定总长度是9位,在新编码2^(k-1)k递增位置占坑补0,确定汉明码的位置。
- 其余坑位,按原来顺序填充信息位。
- 将9位,转换为二进制,倒数第一位等于1(1,3,5,7)的数据执行异或运算,并填充到效验码第1位。
- 转换为二进制,倒数第二位等于1(10,11,110,111)的数据执行异或运算,并填充到效验码第2位。
- 转换为二进制,倒数第三位等于1(100,101,110,111,1100)的数据执行异或运算,并填充到效验码第4位。
- 转换为二进制,倒数第四位等于1(1000,1001,1011,1010)的数据执行异或运算,并填充到效验码第8位。
- 以上得到完整的汉明码。
- 如何效验数据的正确性?
- 执行以上异或运算,全部为0,则数据传输正确。0101则第5位发生错误。
posted @
2018-08-08 15:24
剑诀浮云
阅读(
2367)
评论()
编辑
收藏
举报