数据校验码

news/2025/1/31 22:08:41/

文章目录

  • 什么是数据校验码
  • 01 奇偶校验码
  • 02 海明校验码
  • 03 循环冗余校验码CRC


什么是数据校验码

      计算机系统中的数据在读写、存储和传送的过程中可能会产生错误,这个时候就需要带有发现某些错误和自动改错能力的数据编码方法。实现原理就是加进一些冗余码,使合法数据编码出现某些错误时,就成为非法编码,这样就可以通过检测编码的合法性来达到发现错误的目的。

先来了解几个概念:

  • 码距:任意两个合法码之间最少有几个二进制不同,仅有一位不同,其码距为1;

例如有如下合法码:
      000 、 001 、010 、100 …
合法码之间最少有1位不同,码距为1;

      0110 、 1010、0011、0101 …
合法码之间最少有2位不同,所以码距为2;

       合理地增大码距,能提高发现错误的能力;但码所使用的二进制位数变多,增加了数据存储的容量或数据传送数量,所以通常要考虑在不多增加硬件的情况,尽可能发现或改正更多的错误。
在这里插入图片描述

常用的数据校验码有 奇偶校验码、海明校验码 和 循环冗余校验码:

01 奇偶校验码

奇偶校验码:为一个数据字节补充一个二进制位,称为校验位,使字节的8位和该校验位含有1值的个数为奇数或偶数。

在这里插入图片描述

在这里插入图片描述
异或运算:相同为0,相异为1;

如果有偶数个二进制位出错,偶校验的结果还是偶数,无法检测出错误;

奇偶校验实现电路:
在这里插入图片描述

在这里插入图片描述


02 海明校验码

实现原理:在数据中加入几个校验位,并把数据的每一个二进制位分配在几个奇偶校验组中。

海明校验码是在偶校验的基础上实现的:
在这里插入图片描述

  • 海明码不仅可以校验错误,还可以纠错

在这里插入图片描述
海明码由 n 位信息位 和 k 位校验位构成,其中:

  • k位校验位能够表达 2的k方 种状态
  • (要能够涵盖一位数据没有出错的正确位,有可能出错的n位信息位、k位校验位 );
  • 即要满足 2的k次方 >= n + k + 1

在这里插入图片描述

  • 校验位P的位置: 1、2、4、8、16…(和二进制的权值一样)

在这里插入图片描述

  1. 确定需要多少位海明码;
  2. 确定校验位的分布(把信息位的位置二进制列出来寻找);
  3. 求校验位的值(偶检验)
  4. 纠错 得到出错位

在这里插入图片描述

以上是从右往左的顺序,接下来看 从左往右的顺序:(求解也是一致的)

在这里插入图片描述

海明校验码 拥有 2位检错能力 和 1位纠错能力

在这里插入图片描述

  • 海明码 还拥有一位全校验位,全体偶校验位失败如果有一位错纠正即可,如果有多位错,就需要重新传输;

在这里插入图片描述

在这里插入图片描述


03 循环冗余校验码CRC

          二进制信息位流沿一条线逐位在部件之间或计算机之间传送称为串行传送;CRC(cyclic redundancy check)循环冗余校验码 是指 k 位信息码之后拼接 r 位校验码;CRC码可以发现并纠正信息存储或传送过程中连续出现的多位错误,在磁介质存储和计算机之间通信方面得到广泛应用。

在这里插入图片描述

  • 即传送的数据码 约定一个 除数 ,添加校验位后 除法余数为0(其余也称模2除);
  • 若余数非0,说明出错,则进行重传或纠错;

示例:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


http://www.ppmy.cn/news/374889.html

相关文章

校验和计算

校验和计算 参考RFC文献 1. 前言 校验和计算是NAT功能和内容修改功能的基本功,这些操作进行后都需要修改数据头中的校验和。 2. 16位校验和计算 2.1 基本原理 IP/ICMP/IGMP/TCP/UDP等协议的校验和算法都是相同的,采用的都是将数据流视为16位整数流进行…

校验和的计算方法

校验和算法 unsigned short check_sum(unsigned short *addr,int len) {register int nleftlen;register int sum0;register short *waddr;short answer0;while(nleft>1){sum*w;nleft-2;}if(nleft1){*(unsigned char *)(&answer)*(unsigned char *)w;sumanswer;}sum(sum…

校验和计算方法

1.说明: [1]校验和覆盖的内容: IP校验和:IP首部。 ICMP校验和:ICMP首部ICMP数据; UDP、TCP校验和:首部数据12个字节伪首部(源IP地址、目的IP地址、协议、TCP/UDP包长)。 2.计算校验和的步骤: […

F1C100S电阻触摸屏驱动

https://whycan.cn/t_2143.html移植触摸屏驱动。 移植后遇到的问题,触摸中断一直在触发。【原因:由于rtp引脚复用没有设置】 //读0x01C20800寄存器,可以看到没有配置复用 # devmem 0x01C20800 0x00000777 //写0x01C20800寄存器,PA0\PA1\PA2\PA3启动RTP…

ctfshow web310

跟前面308 309同一个源码,只是mysql添加了密码不能ssrf了 跟309一样 不过这题的flag不能直接读,找了一下,web目录下面的flag是假的,真的在/var/flag里面,无法直接用ssrf读到,但写个木马用蚁剑连接就能读到了…

CF120F Spiders

知识点:贪心,树的遍历 难度:5 我真的是操了,这已经不知道是多少次因为无向边而把数组开小导致一直卡着,这个题的题意就是有若干棵无根树,问把这些树拼接起来最长的直径能有多少,总体的思路就是…

f1c100s spi flash分区

spi flash分区 u-boot-sunxi-with-spl.bin – 1Msuniv-f1c100s-licheepi-nano.dtb – 64KzImage – 4Mrootfs – 剩余 dd if/dev/zero off1c100s_spiflash_16M.bin bs1M count16 &&\ dd if/home/book/lichee/u-boot/u-boot-sunxi-with-spl.bin off1c100s_spiflash_16…

JSF入门系列教程(一) jsf简介,jsf是什么?

Web应用程式的开发与传统的单机程式开发在本质上存在着太多的差异,Web应用程式开发人员至今不可避免的必须处理HTTP的细节,而HTTP无状态的(stateless)本质。 与传统应用程式必须维持程式运行过程中的资讯有明显的违背&#xff0c…