首页 > 其他分享 >CRC循环冗余校验计算过程

CRC循环冗余校验计算过程

时间:2023-07-13 20:11:06浏览次数:46  
标签:运算 多项式 校验 CRC 异或 冗余 除数

储备知识:

  • 同或运算(同0异1)
  • 异或运算(同1异0)

CRC校验中,多项式可表示为\((\sum_{i=1}^{j}C_iX^i)+1,C=0,1\)

注:使用多项式算术是为了在进行二进制计算时无需考虑进位问题

CRC中用到的除数,由多项式的各项系数组成

运算举例

设多项式为X6+X4+X2+X+1,进行校验的数据设为1101011011

可得除数为1 0 1 0 1 1 1

在原数据末端加上多项式阶数个0,得:1101011011000000

与除数进行异或运算:

\[\frac{1101011011000000}{1010111******}(*无意义占位符) \]

得结果:

\[011100[011000000](括号内为未参与异或运算的位,加在运算结果后) \]

再进行异或运算:

\[\frac{0111100011000000}{*1010111******}(*无意义占位符) \]

注:进行异或运算时数据第一个1与除数左对齐

再进行异或运算直至所有位都进行过异或运算为止

得到的结果即为CRC校验和(长度 = 除数减1 = 之前加0的个数)

将校验和加在原数据之后,就是带有CRC校验和的数据

注:当最后异或运算结果的有效位数较少时,加在原数据后的校验和的长度也应 = 除数减1 = 之前加0的个数,长度不够在校验和前面加0

标签:运算,多项式,校验,CRC,异或,冗余,除数
From: https://www.cnblogs.com/wgq0402/p/17552010.html

相关文章

  • EAS_如何获取并校验DEP中新加的字段
    1.添加字段如果是普通单据编辑界面,可以直接再编辑列表上添加相应控件,并命名相应的名称,比如这里我加了一个票据包号,并修改下面属性的名称为字段的名称,                      这样,绑定实体字段会自动更新修改的值,这里的名称,我们后续......
  • 封装校验证件号
    封装正则校验证件号方法创建commRepExp.js/***校验身份证,代校验位此处仅仅是大陆18位的身份证校验*@paramidCard校验的数据*@returnsBoolean返回布尔值*/constisVerifyIdCard=(idCard)=>{//18位身份证号码的正则表达式varregIdCard=......
  • 如何实现Java中使用注解校验参数的具体操作步骤
    Java中使用注解校验参数简介在Java开发中,我们经常需要对方法的参数进行校验,以确保传入的参数符合我们的要求。而注解是一种常用的方式来实现参数校验。本文将介绍如何在Java中使用注解来校验参数,并给出一些示例代码帮助理解。整体流程下面是使用注解校验参数的整体流程,我们将通......
  • 构造模式+责任链模式实现链式调用(可以用于参数校验等)
    参考:https://zhuanlan.zhihu.com/p/553917078?utm_id=0一、责任链模式责任链模式(ChainofResponsibilityPattern)是将链中每一个节点看作是一个对象,每个节点处理的请求均不同,且内部自动维护一个下一节点对象。当一个请求从链式的首端发出时,会沿着链的路径依次传递给每一个节点......
  • JavaScript校验地图经纬度是否符合规范
    functionverifylonglat(longitude,latitude){varlongreg=/^(\-|\+)?(((\d|[1-9]\d|1[0-7]\d|0{1,3})\.\d{0,6})|(\d|[1-9]\d|1[0-7]\d|0{1,3})|180\.0{0,6}|180)$/;if(!longreg.test(longitude)){returnnewError('经度,整数部分为0-180小数部分为......
  • 校验 GPT-4 真实性的三个经典问题:快速区分 GPT-3.5 与 GPT-4
    现在已经有很多ChatGPT的套壳网站,以下分享验明GPT-4真身的三个经典问题,帮助你快速区分套壳网站背后到底用的是GPT-3.5还是GPT-4。大家可以在这个网站测试:https://ai.hxkj.vip,免登录可以问三条,登录之后无限制。咱们使用免登录的额度测试就已经够用了测试问题1:Whatist......
  • git代码提交 设置日志模板 对用户提交日志注释进行校验
    背景:由于公司项目管理需要,对开发人员的提交日志进行规范性约束。作为兼职的devops工程师,责无旁贷的去吭哧吭哧的研究了。公司主要使用git管理代码,gogs托管。作为领导眼中分分钟解决的问题,在真实上手研究还是需要一些时间成本的(鄙人主职还是研发)。思路:1、利用度娘和biying搜索了......
  • 案例-验证码-校验
     //获取用户输入的验证码StringcheckCode=request.getParameter("checkCode");//获取程序生成的验证码,从Session中获取HttpSessionsession=request.getSession();StringcheckCodeGen=(String)session.getAttribute("checkC......
  • 前端Vue自定义登录界面切换tabs 账号登录验证码登录模版 支持手机号校验邮箱校验验证
    前端Vue自定义登录界面切换tabs账号登录验证码登录模版支持手机号校验邮箱校验、验证码发送, 下载完整代码请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?id=13298效果图如下:cc-loginTabs使用方法<!--selIndex:选中序列 tabs-arr:tabs数组 @tabClic......
  • EasyExcel validator校验 及自定义 枚举校验
    需要校验的实体importcom.alibaba.excel.annotation.ExcelIgnore;importcom.alibaba.excel.annotation.ExcelProperty;importcom.alibaba.excel.annotation.write.style.ColumnWidth;importcom.ruoyi.system.domain.enums.RoleStatusEnum;importcom.ruoyi.system.domain......