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

汉明码原理

最近重新翻看了大学的一些课程,发现课程中对汉明码原理的讲解都不是很通俗易懂。所以自己网上查了很多资料,也想了很多天,终于对汉明码的原理有了自己的理解,所以想写篇博客,总结一下,也希望能够帮助到大家!

一、汉明码的纠错检错

1、1位纠错

首先汉明码默认一串二进制数据最多只能错一位。那么汉明码是如何能找到传输二进制数据中哪一位出现错误呢?这个问题很重要,是汉明码原理设计的核心。

思路:对汉明码的每一个二进制的角标上面的位置一 一 进行偶校验,比如我们传输这样一个二进制数据:abcdefg,(a、b、c、d、e、f、g 的值为0或者1其中一个数)。我们再次强调一下我们的目的:找出传输数据的哪一个位置出现错误。abcdefg这一串二进制数据中,g的角标从右到左数为1,f的角标为2,e的角标为3,d的角标为4,c的角标为5,b的角标为6,a的角标为7。为了找到错误位置,即上面的角标,我们可以考虑对角标进行二进制转换,并对角标进行分组,分组方式如下:

凡是位置符合这种形式的,XXX1,归到P1;

凡是位置符合这种形式的,XX1X,归到P2;

凡是位置符合这种形式的,X1XX,归到P3;

凡是位置符合这种形式的,1XXX,归到P4;

如果角标为3的位置出现异常,3的二进制形式为0011,那么会导致P1、P2计算出来的值出现异常。如果角标为5的位置出现异常,5的二进制形式为0101,那么会导致P1、P3计算出来的值出现异常。这样我们就可以找到传输的错误位了。

相关文章:

  • 黑马瑞吉外卖之菜品信息的修改
  • 【Vue 基础知识】v-for的使用和注意事项
  • LeetCode Cookbook 数组习题(8)
  • Java新手小白入门篇 SpringBoot项目的构建
  • 第十一届中国创新创业大赛浙江赛区暨第九届浙江省“火炬杯”创新创业大赛-新一代信息技术行业总决赛
  • kuangbin专题六 最小生成树(2022.9.3)
  • C++s简单实现Scoket编程
  • 做一个物联网温湿度传感器(一)SHT30传感器介绍
  • Sublime Text 最简单的更换主题和字体颜色的办法
  • 通过vue ui方式构建vue+electron项目
  • 2022最新一线大厂Java八股文合集PDF版震撼开源,堪称史上最强
  • 5.13一行代码就能解决的算法题
  • 序列查询新解
  • 5.10如何调度考生的座位
  • 基于retas的动漫动画制作与设计
  • @jsonView过滤属性
  • HTML5新特性总结
  • idea + plantuml 画流程图
  • JavaScript 一些 DOM 的知识点
  • js如何打印object对象
  • MySQL Access denied for user 'root'@'localhost' 解决方法
  • Stream流与Lambda表达式(三) 静态工厂类Collectors
  • 百度贴吧爬虫node+vue baidu_tieba_crawler
  • 今年的LC3大会没了?
  • 力扣(LeetCode)357
  • 入手阿里云新服务器的部署NODE
  • 世界上最简单的无等待算法(getAndIncrement)
  • 通过git安装npm私有模块
  • 微服务框架lagom
  • 限制Java线程池运行线程以及等待线程数量的策略
  • 用Python写一份独特的元宵节祝福
  • 阿里云ACE认证学习知识点梳理
  • 基于django的视频点播网站开发-step3-注册登录功能 ...
  • $refs 、$nextTic、动态组件、name的使用
  • (2)关于RabbitMq 的 Topic Exchange 主题交换机
  • (Python第六天)文件处理
  • (八)c52学习之旅-中断实验
  • (附源码)php新闻发布平台 毕业设计 141646
  • (力扣记录)235. 二叉搜索树的最近公共祖先
  • (四) Graphivz 颜色选择
  • (四)鸿鹄云架构一服务注册中心
  • (原)记一次CentOS7 磁盘空间大小异常的解决过程
  • (转载)在C#用WM_COPYDATA消息来实现两个进程之间传递数据
  • ***利用Ms05002溢出找“肉鸡
  • .form文件_SSM框架文件上传篇
  • .Net Core webapi RestFul 统一接口数据返回格式
  • .net framework profiles /.net framework 配置
  • .net php 通信,flash与asp/php/asp.net通信的方法
  • .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter
  • .net打印*三角形
  • .net下的富文本编辑器FCKeditor的配置方法
  • @data注解_SpringBoot 使用WebSocket打造在线聊天室(基于注解)
  • @Valid和@NotNull字段校验使用
  • [ 云计算 | Azure 实践 ] 在 Azure 门户中创建 VM 虚拟机并进行验证
  • [20171101]rman to destination.txt