当前位置: 首页 > news >正文

搞懂海明码

海明码搞懂之前先了解奇偶校验。例如:1111 对其进行奇偶校验。

   奇检验:11111 奇校验使1的个数保持在奇数

   偶校验:01111 偶校验使1的个数保持在偶数

海明码可以拆分为三步:

一、确定校验的位数

        公式:2^k  >= k + n + 1

        人话:2^k >= k + 数据位数 + 1  其中k就是有多少个校验位

如:100011 的校验位有: 2^k >= k + 6 + 1      ==>       2^4 >= 4 + 6 + 1     有4位校验位

二、确定校验数的位置

还是:100011为例  校验码的位置为:Pi 在海明位号为 2^(i-1)

原有的信息位:D6 D5 D4 D3 D2 D1

校验位:P4 P3 P2 P1

原有位数+校验位数=H10 H9 H8 H7 H6 H5 H4 H3 H2 H1 

        H10 H9 H8 H7 H6  H5  H4 H3 H2 H1        

        D6  D5  P4  D4 D3 D2  P3 D1  P2 P1

海明码为:10?001?1??

三、放入校验规则

H3 = H1+H2P1  P2
H5 = H1+H4P1  P4
H6 = H2 + H4P2  P3
H7 = H1 + H2 + H4P1  P2  P3
H9 = H1 + H8
P1  P4
H10 = H2 + H8P2  P4

H10 H9  H7 H6  H5  H3 

1       0    0    0    1      1

然后把包含有P1的取出来做异或⊕

P1 = H3 ⊕H5 ⊕H7 ⊕H9= 1 ⊕ 1 ⊕0 ⊕ 0= 0

然后把包含有P2的取出来做异或⊕

P2 = H3 ⊕H6 ⊕H7 ⊕H10= 1 ⊕ 0 ⊕0 ⊕1= 0

然后把包含有P3的取出来做异或⊕

P3 = H6 ⊕H7 = 0 ⊕ 0= 0

然后把包含有P4的取出来做异或⊕

P4 = H5 ⊕H9 ⊕H10 = 1 ⊕ 0 ⊕1= 0

将算出的值放入到  D6  D5  P4  D4 D3 D2  P3 D1  P2 P1 得到海明码 1000010100

http://www.lryc.cn/news/36500.html

相关文章:

  • 数据库:Mysql数据库安装及使用
  • 【冲刺蓝桥杯的最后30天】day7
  • REG.EXE修改注册表-解决win10微软输入法默认中文,将其全局修改为英文
  • hive之正则函数研究学习regex/regex_replace/regex_extract
  • Codeforces Round 854 by cybercats (Div. 1 + Div. 2) C、D1
  • API 网关日志的价值,你了解多少?
  • 华大单片机、STM32单片机如何做printf串口打印格式化输出
  • unity 面试汇总
  • Spring SpringBoot中使用Mybatis-plusDemo1
  • 【18.04Ubuntu中解决无法识别显示屏】
  • Python 协程详解,都在这里了
  • 百家号如何写文章赚钱,百家号写文章真的赚钱?
  • 【HDFS】datanodeReport RPC优化
  • 【数据结构】研究链表带环问题
  • 数据仓库的设计思想
  • 【JavaSE】数组的定义与使用详解
  • Kubernetes14:Helm为了部署像微服务这种的大型项目
  • 2.3操作系统-存储管理:页式存储、逻辑地址、物理地址、物理地址逻辑地址之间的地址关系、页面大小与页内地址长度的关系、缺页中断、内存淘汰规则
  • 设计模式3——结构型模式
  • css——图片缩放,拉伸,变形的解决办法
  • 【工具使用】STM32CubeMX-基础使用篇
  • 面试题解-理解cookie、session和token
  • Buuctf [GUET-CTF2019]number_game 题解
  • OsgEarth配置.earth文件支持wms服务
  • 【数据结构】详解空间复杂度
  • 腾讯云GPU游戏服务器/云主机租用配置价格表
  • 配置临时SSL子域名泛化证书
  • 【Linux:环境变量的理解】
  • python数据类型与数据结构
  • 大数据自学学习技巧?