-
汉明码的理解
- 用于验证传输二进制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位发生错误。
-
相关阅读:
关于本博客
洛谷P3387 【模板】缩点 题解
spfa学习笔记
Google Chrome Download
Kosaraju算法学习
fhq treap 学习笔记
OIerChat
python request.get(h.html),用xpath获取数据为空
k8s 用ingress暴露集群环境中的服务。
harbor push 报received unexpected HTTP status: 500 Internal Server Error
-
原文地址:https://www.cnblogs.com/gongjin/p/9443026.html
Copyright © 2020-2023
润新知