海明校验码–确定校验位

海明校验码–确定校验位计算机组成中的海明校验码 相信学过的都会有了解 那么对其中校验位的确定 我想似乎有些人不是很明白 今天我来详细的把如何确定校验位分享一下 nbsp nbsp 首先看下基本的概念 nbsp nbsp nbsp 2 r k r 1 nbsp 其中 r 为校验位 k 为信息位 nbsp 信息位是已知的 那么如何确定校验位呢 用一个例子来说明 nbsp 例如 二进制码 1011 nbsp 求它的海明编码步骤如下 1 首先确定信息位 也就是

           计算机组成中的海明校验码,相信学过的都会有了解,那么对其中校验位的确定,我想似乎有些人不是很明白,今天我来详细的把如何确定校验位分享一下

    首先看下基本的概念  :

    2^r≥k+r+1  

其中r为校验位 ,k为信息位  信息位是已知的,那么如何确定校验位呢,用一个例子来说明 



例如:二进制码1011  求它的海明编码 步骤如下:



1、首先确定信息位,也就是1011了,那么随之K的长度也就知道了是4位

2、确定校验码是几位  根据上述公式我们去试最接近而且满足条件的值,1011的校验位是3,也就是r=3,这样刚好满足了条件  

3、确定了校验位的位数之后就是来确定校验位的值以及分配校验位了  

   首先来看分配校验位:  一般来说校验位都是放在2^n的位置处,也就是1、2、4、8….  

   其次就是确定分组(也就是确定校验位的值) 

 通过初步的解题我们知道了校验位+信息位一共是7位,那么我们首先来画一个表,分别把这些数据填进去  

   海明校验码--确定校验位

注释:  我分别把七个位置用1~7来表示了  在填写信息为的时候也要把高位的数据填到高的位置 ,例如1011  就要类似图中的填法  



 确定校验位的分组原则:

  1.每个位置的校验位确定: 要想校验第几位 (i)  那么i就等于校验位所在位置的加和    举个简单的例子,加入我要教研第3位,那么3=1+2  也就是3 由第一个和第二个校验位来校验,照这样的算法,以此类推,我们就可以知道每个位置都需要哪个校验位来校验了 



     下面是1011的校验位分配表

 

海明校验码--确定校验位

按上述方法分配好后,我们已经明确的知道了每个位置都需要利用哪些位置来校验,下面也是关键的一步了 



我们要把这些数据汇总起来,也就是每个校验位都校验了哪些位置,就分别把这些位置的值按亦或计算(也就是相同的值就为0  ,不相同时就取1)  这样就得到了每个校验位的值了 



  下面我们来看看,每个校验位都分别校验了哪些位置 :

海明校验码--确定校验位



由此表可以看出对于校验位所要校验的位置,已经确定了,余下的就是计算检验位的值了,(利用亦或运算) 



可得到r1  r2  r3 的值分别为 1,0,0  (如果此处你不会亦或运算,那么建议百度查一查,练习一个简单的例子就会和明白了) 



到此位置,我们就求出了校验位的值,同时海明码也就出来了 



那么对于海明码的验证纠错等知识我就不在这里介绍了,以上就是我对此部分知识的理解,欢迎交流学习







版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/213991.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午5:14
下一篇 2026年3月18日 下午5:14


相关推荐

  • 算法刷题LeetCode中文版_leetcode简单题

    算法刷题LeetCode中文版_leetcode简单题目录二分查找排序的写法BFS的写法DFS的写法回溯法树递归迭代前序遍历中序遍历后序遍历构建完全二叉树并查集前缀树图遍历Dijkstra算法Floyd-Warshall算法Bellman-Ford算法最小生成树Kruskal算法Prim算法拓扑排序查找子字符串,双指针模板动态规划状态搜索贪心本文的目的是收集一些典型的题目,记住其写法,理解其思想,即可做到一通百通。欢迎大家提出宝贵意见!二分查找…

    2025年9月28日
    4
  • Ubuntu18 安装yum

    Ubuntu18 安装yum一.先执行一下命令更新软件源sudoapt-getupdatesudoapt-getupgrade二.检测是否安装build-essential包sudoapt-getinstallbuild-essential

    2022年6月24日
    24
  • 团队建设中的盲区

    团队建设中的盲区

    2021年8月5日
    77
  • java volatile关键字的作用_java volatile关键字作用及使用场景详解

    java volatile关键字的作用_java volatile关键字作用及使用场景详解1.volatile关键字的作用:保证了变量的可见性(visibility)。被volatile关键字修饰的变量,如果值发生了变更,其他线程立马可见,避免出现脏读的现象。如以下代码片段,isShutDown被置为true后,doWork方法仍有执行。如用volatile修饰isShutDown变量,可避免此问题。publicclassVolatileTest3{staticclassW…

    2022年5月31日
    37
  • AI绘画 | 10个国内免费AI工具,亲测可生成Midjourney风格

    AI绘画 | 10个国内免费AI工具,亲测可生成Midjourney风格

    2026年3月15日
    2
  • 钩子(HOOK)函数教程

    钩子(HOOK)函数教程http blog sina com cn s articlelist 1585708262 3 1 html 钩子 HOOK 函数教程 一 我们可以首先从字面上了解钩子 钩子是干什么的呢 日常生活中 我们的钩子是用来钩住某种东西的 比如 说 鱼钩是用来钓鱼的 一旦鱼咬了钩 钩子就一直钩住鱼了 任凭鱼在水里怎么游 也逃不出鱼钩的控制 同样的 Windows 的钩子 Hook 也是用来钩东西的 比较抽

    2026年3月19日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号