【海明码】一题学会海明码!

news2024/11/25 4:36:08

一、详细步骤

1、海明码,也称汉明码

2、海明码=数据码+校验码

3、假设数据码为1100,有4位,即n=4

4、由公式2^k>=n+k+1,解得k=3,即需3个校验码

5、校验按2^i(即2的i次幂,如1、2、4、8、16、32...)留出空来,一会填校验码

6、分组

1)我们需要确认H1、H2、H4这三个校验位都来校验哪些位置

2)将1、2、4的二进制码写出来,最高位补到3位(前面算的k=3),如下

3)将0替换为*,作为通配表,如下

4)将1到7的二进制列出来,如下

 5)将这几个数与上面的通配表进行匹配(把有与通配表1相同位置的数放一列),如下

 6)因此我们可以确定:

H1负责H1、H3、H5、H7的校验

H2负责H2、H3、H6、H7的校验

H4负责H4、H5、H6、H7的校验

7、用偶校验法,求出校验位是1还是0

H3、H5、H7的1的个数为奇数,因此H1=1

H3、H6、H7的1的个数为偶数,因此H2=0

H5、H6、H7的1的个数为偶数,因此H4=0

8、至此我们得出了完整的汉明码,如下

 9、查错( ^ 表示按位异或)

第一组 p1 = H1 ^ H3 ^ H5 ^ H7       

第二组 p2 = H2 ^ H3 ^ H6 ^ H7

第三组 p3 = H4 ^ H5 ^ H6 ^ H7

10、画圈(这样方便目视)

1)如编码完全正确,那么p1、p2、p3的结果都是0

2)如果p1 = 1,p2 = p3 = 0,则说明p2与p3组的成员2、3、4、5、6、7都没出错,则H1错误

3)以此类推

11、总结

二、参考连接

1、《汉明码(海明码)》通俗易懂https://blog.csdn.net/weixin_61985100/article/details/123300540

2、海贼宝藏https://www.haizeix.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/684919.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2入门matlab图像处理图像的基本操作(matlab程序)

学习目标:学习关于图像的基本操作 代码及运行结果 %% 通过抖动来增强图像的色彩对比度 clear all; close all; Iimread(cameraman.tif); %读取灰度图像 BWdither(I); %通过抖动转换为二值图像来增强图像的色彩对比度 subplot(121); imshow(I); subplot(122);…

电气火灾监控系统行业技术应用现状

摘要:我国现有的电气火灾监控系统的应用效果不佳,为了让电气火灾监控系统的发展能满足现代化人们的需要,对此进行分析与研究。网络化时代的到来,电气火灾监控系统将顺应时代潮流,逐步实现系统的网络化、智能化、可视化…

神经网络原理(1)

眼下最热门的技术,绝对是人工智能。 人工智能的底层模型是"神经网络"(neural network)。许多复杂的应用(比如模式识别、自动控制)和高级模型(比如深度学习)都基于它。学习人工智能&a…

sql笛卡尔积和自然连接

SQL中的笛卡尔积 即AxB。可以简单理解为两个集合的乘积。 SQL语法 SELECT * FROM tb1 CROSS JOIN tb2; -- 等价于 SELECT * FROM tb1, tb2; -- 等价于 SELECT * FROM tb1 INNER JOIN tb2; -- 这是内连接**CROSS JOIN不能加ON。** 从行和列两个维度来观察上例笛卡尔积的结果集…

Mybatis源码分析_解析大流程梳理_补充 (4)

上一篇&#xff0c;我们这只是粗略的说了一下Mybatis的配置文件解析的大体流程。而这一篇针对上一篇进行补充。 1. <sql> 是如何解析的 我们经常会把一些公用的&#xff0c;重复出现的字段写在<sql>标签中&#xff0c;而通过上图&#xff0c;我们知道sqlElement是…

unity 性能优化学习笔记——静态资源的导入

1 Audio导入设置检查与优化 根据平台选择合理的音频设置&#xff0c;原始音频资源尽量采用未压缩WAV格式 - 移动平台对音乐音效统一采用单通道设置&#xff08;Force to Mono&#xff09;,并将音乐采样频率设置为22050Hz - 移动平台大多数声音尽量采用Vorbis压缩设置&#xff0…

RISC-V处理器的设计与实现(一)—— 基本指令集

本人小白一枚&#xff0c;在学习FPGA的过程中偶然刷到了tinyriscv这个开源项目&#xff0c;并且自己对计算机体系结构的知识也很感兴趣&#xff0c;所以想参考这个开源项目做一个基于RISC-V指令集的CPU&#xff0c;下面是tinyriscv这个开源项目的地址&#xff0c;本项目很多思路…

专属 Python 开发的完美终端工具

概要 Rich 是一个 Python 库&#xff0c;用于在终端中提供富文本格式和精美的格式。 Rich 是一个非常强大的 Python 库&#xff0c;不仅在终端中提供丰富的文本和漂亮的格式&#xff0c;还可以显示表情符号、表格、进度条、标记&#xff0c;甚至语法突出显示的代码。 Rich 是一…

nginx的优化

目录 一 隐藏版本号在网页上面有nginx的版本号会让别人攻击你的服务器 二 nginx的优化之日志分割 三 nginx的优化之页面压缩 四 连接超时 五 nginx的并发设置 七总结:nginx的优化 一 隐藏版本号在网页上面有nginx的版本号会让别人攻击你的服务器 如图所示 第一种方法是关…

什么是 DOM?DOM树如何生成的?

什么是 DOM 文档对象模型(Document Object Model)。它提供了对文档结构化的描述,并将HTML页面与脚本、程序语言联系起来。 在渲染引擎中&#xff0c;DOM有以下几个层面的作用&#xff1a; 从页面来看&#xff0c;DOM就是生成页面的基本数据结构从JS脚本来看&#xff0c;DOM提…

前端 js 操作 Cookie 详细介绍与案例

1 前言 1.1 详细介绍 名称和值&#xff1a;Cookie由一个名称和对应的值组成。名称是一个字符串&#xff0c;用于标识Cookie&#xff0c;而值则是与名称相关联的数据。域名&#xff1a;每个Cookie都与特定的域名相关联。Cookie只会被发送到与其关联的域名下的请求中。路径&…

MybatisPlus多数据源原理与问题简析

文章目录 1. 使用1.1. 引包1.2 增加配置1.3 使用DS注解 2. 源码2.1 Configuration文件, 加载配置与bean注入2.1.1 配置类 2.2 注册DataSource2.2.1 获取所有的DataSource2.2.1.1 构建DataSource 2.2.2 对数据源分组 2.3 切换数据源2.3.1 DynamicDataSourceContextHolder2.3.2 D…

【LLMs 入门实战 】第一式:Vicuna 模型学习与实战

UC伯克利学者联手CMU、斯坦福等&#xff0c;再次推出一个全新模型70亿/130亿参数的Vicuna&#xff0c;俗称「小羊驼」&#xff0c;小羊驼号称能达到GPT-4的90%性能。 欢迎使用小羊驼&#x1f999;环境搭建权重下载下载 Vicuna Weight下载 LLAMA Weight构建真正的 working weigh…

InceptionNext实战:使用InceptionNext实现图像分类任务(一)

文章目录 摘要安装包安装timm安装 grad-cam 数据增强Cutout和MixupEMA项目结构计算mean和std生成数据集 摘要 论文翻译&#xff1a;https://wanghao.blog.csdn.net/article/details/131347001?spm1001.2014.3001.5502 官方源码&#xff1a;https://github.com/sail-sg/incept…

Spring Boot详细应用示例:构建一个简单的图书管理系统

文章目录 摘要正文1. 创建Spring Boot项目2. 配置数据库3. 创建实体类4. 创建数据访问层5. 创建业务逻辑层6. 创建控制器层7. 创建前端页面8. 添加身份验证9. 测试运行 小结 摘要 本文将介绍如何使用Spring Boot框架构建一个简单而完整的图书管理系统。通过这个示例&#xff0…

学术小技巧:如何使用easyscholar来提高论文查找效率

0 摘要 easyScholar是一款很好用的科研插件&#xff0c;可以显示会议期刊登记&#xff0c;支持轻量翻译&#xff0c;一键下载等等功能。 1 效果预览 可以直接显示SCI分区&#xff0c;目前中科院SCI分区基础版是免费的&#xff0c;升级版要收费。 目前支持的网站有&#xff1…

【C++】红黑树的插入实现

目录 红黑树的概念红黑树的性质 红黑树节点的定义红黑树的插入操作当p(父节点)在g(祖父节点)左子树grandfather->_left parent当p(父节点)在g(祖父节点)右子树grandfather->_right parent &#x1f4d6; 前言 本篇文章中红黑树的插入用到左单旋和右单旋在AVL树的插入中…

【Python】python进阶篇之面向对象编程

面向对象编程 封装、继承、多态 封装&#xff1a;提高程序安全性 将数据&#xff08;属性&#xff09;和行为&#xff08;方法&#xff09;包装到类中。在方法内部对属性进行操作&#xff0c;在类的外部调用方法。无需关心方法内部的具体实现细节&#xff0c;从而隔离代码复杂…

生成器模式(Builder)

定义 生成器是一种创建型设计模式&#xff0c;使你能够分步骤创建复杂对象。该模式允许你使用相同的创建 代码生成不同类型和形式的对象。 前言 1. 问题 假设有这样一个复杂对象&#xff0c;在对其进行构造时需要对诸多成员变量和嵌套对象进行繁复的初始化工作。这些初始化…

体验Vue神奇的响应式原理:让你的应用更快、更流畅

文章目录 I. 引言介绍Vue.js的响应式原理及其重要性概述本文的内容 II. 数据劫持解释什么是数据劫持Vue如何实现数据劫持示例说明 II. 依赖收集解释什么是依赖收集Vue如何实现依赖收集示例说明 IV. 派发更新解释什么是派发更新Vue如何实现派发更新示例说明 V. 响应式原理运作流…