cyclic redundancy check
CRC 循环冗余校验码
奇偶校验其实就是CRC校验的一种特例
循环冗余校验码由信息码n位和校验码k位构成。k位校验位拼接在n位数据位后面,n+k为循环冗余校验码的字长
具有检错、纠错能力的校验码
模二除法(模二除法的结果不等于普通除法)
当部分余数首位是1时商取1,反之商取0。然后每一位的减法运算是按位减,不产生借位
例如:

如果要传输的数据为:1101011011

除数设为:10011

在计算前先将原始数据后面填上4个0:11010110110000,之所以要补0,后面再做解释。

从这个例子可以看出,采用了模2的加减法后,不需要考虑借位的问题,所以除法变简单了。最后得到的余数就是CRC 校验字。为了进行CRC运算,也就是这种特殊的除法运算,必须要指定个被除数,在CRC算法中,这个被除数有一个专有名称叫做“生成多项式”。
生成多项式的最高阶数,就是要补0的个数。
生成多项式的选取是个很有难度的问题,如果选的不好,那么检出错误的概率就会低很多。好在这个问题已经被专家们研究了很长一段时间了,对于我们这些使用者来说,只要把现成的成果拿来用就行了。
计算方法:
1.计算冗余位的位数,即生成多项式的最高阶数

2.在信息位后补冗余位个数的0

3.将第二步的结果与生成多项式相除,这里采用的除法叫做模2除法,就是只要部分余数的高位为1,便可商1 之后上下做的减法是异或。

4.经过第三步不断地计算后得到余数
将信息为后面补的0换成余数

CRC循环冗余校验码相关推荐

  1. CRC循环冗余校验码总结

    一.CRC简介 先在此说明下什么是CRC:循环冗余码校验 英文名称为Cyclical Redundancy Check,简称CRC,它是利用除法及余数的原理来作错误侦测(Error Detecting ...

  2. CRC 循环冗余校验码 的计算方法

    循环冗余校验CRC(Cyclical Redundancy Check)字段位于尾部,有32位,有时称为IEEE/ANSI标准的CRC32.要使用一个n位CRC监测 数据传输错误,被检查的消息首先要追 ...

  3. 16位CRC循环冗余校验码生成函数

    16位的CRC校验码生成,可使用以下函数: //16位CRC校验码生成 //返回值:CRC校验码 unsigned int CRC_check(unsigned char *addr,int num) ...

  4. 循环冗余校验码CRC原理和实例

    今天同事问了一个CRC(循环冗余校验码)的问题,好奇心之下学习了一下. 首先说它的原理,百度百科上也有,我就简单说一下,它其实就是采用多项式编码的方法,对于要发送的信息码R,发送方和接收方约定好多项式 ...

  5. CRC循环冗余校验是如何纠错的

    引言 昨天同学突然问我CRC循环冗余校验是如何纠错的?我突然大脑一片空白,学过校验码自然知道CRC循环冗余校验码是可以检错和纠错,但是仿佛只知道求出检验码和检错的过程,但是不知道如何纠错的过程,查询书 ...

  6. 循环冗余校验码CRC,求解步骤

    循环冗余校验码CRC,是软考-计算机组成原理 中一种重要的编码. 下面只是简要描述求解CRC码的解题步骤,面向有一定理论基础的朋友. 直接看例题. 例.信息位: 10100110   生成多项式: 解 ...

  7. 第二章 数据的表示和运算 2.1.6 循环冗余校验码/CRC码 [计算机组成原理笔记]

    第二章 数据的表示和运算 2.1.6 循环冗余校验码/CRC码 本笔记参考书目: 计算机组成原理(第六版.立体化教材)白中英.戴志涛 2021王道计算机组成原理视频公开课 本节重点: 循环冗余校验码/ ...

  8. 计算机组成原理:循环冗余校验码CRC具备“一位纠错”功能的思考与探索

    笔者在阅读华中科技大学谭志虎老师主编的<计算机组成原理(微课版)>教材进行复习时,产生了一个疑问,并针对性地进行了一些思考.欢迎广大复习到这里同样有问题的同学(寒假开学接着考试实在有点汗, ...

  9. 计算机系统基础知识——循环冗余校验码(CRC)

    前言:循环冗余校验码(cyclie redundancy check)简称CRC(循环码),是一种能力相当强的检错.纠错码,并且实现编码和检码的电路比较简单,常用于串行传送(二进制位串沿一条信号线逐位 ...

  10. 奇偶校验码 、循环冗余校验码(CRC)、 海明码

    在计算机运行时,为保证二进制数据在传输时准确无误,通常利用校验码来检测并纠错传输的数据.所谓码距就是任意合法编码之间至少有多少个二进制位不同.例如: 码距位1的"8 1 4 2" ...

最新文章

  1. 影像组学视频学习笔记(21)-影像组学常用软件推荐、Li‘s have a solution and plan.
  2. MySQL-数据库和表的基本操作
  3. android进度条课设报告,Android开发之进度条ProgressBar的示例代码
  4. 关键字搜索 c语言,c语言-以关键字搜索程序
  5. sublime同步配置和插件
  6. c6011取消对null指针的引用_C/C++学习笔记——C提高:指针强化
  7. idea 自动生产序列吗,IDEA自动生成序列化Id
  8. 郁闷的五角大楼:100亿美元“JEDI”云服务采购,却遭受云厂商和国会的双重抗议...
  9. js 定义函数的几种方法 以及如何调用
  10. python 合并不同文件夹下名称相同的文件
  11. linux shell中各种分号和括号,Linux Shell中各种分号和括号#的用法总结
  12. java开发最难的地方是什么_java难在哪里?
  13. 拆解USB电压电流表,并分析测量原理(转数码之家)测电流需串一小电阻到电路。测电压不用按照文中,可以直接让电压正进AD的输入端口测试
  14. 美国大学 计算机科学 排名,美国大学本科计算机专业排名TOP50榜单介绍
  15. 计算机音乐谱毛不易,毛不易《平凡的一天》五线乐谱
  16. cmd命令导入.dmp文件
  17. 树莓派homebridge开机启动和后台运行
  18. Blood闪烁特效制作
  19. 【opencv学习】opencv基础用法
  20. day13 - 对指纹图片进行噪声消除

热门文章

  1. 求冠唐干部管理系统的数据库设计
  2. IAST 技术进阶系列(二):全场景多核驱动
  3. java doevents_Application.DoEvents()和多线程
  4. 2021年中国银行业金融机构普惠型小微企业贷款情况分析:贷款余额不断增加,增速也不断下降[图]
  5. MTK刷机工具Flash_Tool部分4032错误解决办法
  6. 计算机专业如何高质量的走完大学四年?毕业成为Offer收割机
  7. java文本文档统计字数,行走目录时字数统计PDF文件
  8. Flutter:视频全屏切换
  9. 在java中new一个对象的流程是怎样的
  10. 【公式识别神器】Mathpix Snip 安装及其使用教程