- 1
- 2
- 3
- 4
- 5
CRC校验实现常见疑问解答
资料介绍
CRC校验实现的十个常见疑问解答 一、概述 问:CRC 校验到底是什么,为什么通信和数据存储里老要用它? 答:CRC(循环冗余校验)是一种校验算法,用来检测数据传输或存储过程中是否出现了错误。它把一段数据当作一个多项式,通过除法运算得到一个固定位数的余数,作为校验值附加在数据后面。接收方用同样的算法重新计算,如果算出的校验值和收到的对不上,就说明数据出了问题。 问:它和奇偶校验、累加和校验有什么区别? 答:区别主要在检错能力。奇偶校验只能发现奇数位的错误,累加和校验容易被对称错误糊弄过去,而 CRC 依靠多项式除法,对突发错误和多比特错误的检出能力要强得多。这也是为什么网络、存储、嵌入式这些对可靠性要求高的场景,普遍选择 CRC。 问:CRC 难不难实现? 答:从概念上不难,就是个多项式除法。但实现起来有很多细节和变体,比如多项式选哪个、初值是多少、要不要反转、宽度是 8 位还是 16 位或 32 位。这些细节不一样,算出来的校验值就不一样,容易踩坑。这篇就把最常见的疑问逐一解答清楚。 二、工作原理 问:CRC 的计算过程,能不能用大白话讲清楚? 答:可以。把待校验的数据看作一个很长的二进制多项式,然后在数据后面补上 CRC 位数的零,用这个多项式除以一个预先定好的"生成多项式"(也是一个二进制多项式),做的是异或式的模 2 除法。除完得到的余数,就是 CRC 校验值。 问:为什么叫"循环"冗余校验? 答:因为整个计算可以看作是让数据循环移位与生成多项式异或,直到处理完所有数据位,最终得到的余数就是结果。这个"循环移位 + 异或"的过程,正是"循环"二字的由来,也决定了它便于用简单的移位寄存器和异或门在硬件里实现。 问:那硬件上是怎么实现的? 答:硬件实现通常用线性反馈移位寄存器(LFSR)。
部分文件列表
| 文件名 | 大小 |
| CRC校验实现常见疑问解答.docx | 39K |
最新上传
-
yahuang001 打赏3.00元 3天前
-
yahuang001 打赏1.00元 3天前
-
zhongshaoxiong 打赏3.00元 3天前
-
他山之石可攻玉 打赏60.00元 3天前
用户:烟雨
-
江岚 打赏210.00元 3天前
用户:潇潇江南
-
江岚 打赏100.00元 3天前
-
21ic下载 打赏310.00元 3天前
用户:gsy幸运
-
21ic下载 打赏310.00元 3天前
用户:zhengdai
-
21ic下载 打赏310.00元 3天前
用户:江岚
-
21ic下载 打赏210.00元 3天前
用户:潇潇江南
-
21ic下载 打赏60.00元 3天前
用户:他山之石可攻玉
-
21ic下载 打赏60.00元 3天前
用户:烟雨
-
21ic下载 打赏60.00元 3天前
用户:w178191520
-
21ic下载 打赏60.00元 3天前
用户:w993263495
-
21ic下载 打赏110.00元 3天前
用户:xzxbybd
-
21ic下载 打赏60.00元 3天前
用户:zq_1943
-
21ic下载 打赏20.00元 3天前
用户:kk1957135547
-
21ic下载 打赏20.00元 3天前
用户:sun2152
-
21ic下载 打赏20.00元 3天前
用户:铁蛋锅
-
21ic下载 打赏20.00元 3天前
用户:xuzhen1
-
21ic下载 打赏20.00元 3天前
用户:w1966891335
-
21ic下载 打赏35.00元 3天前
用户:有理想666
-
21ic下载 打赏15.00元 3天前
用户:nuaanuaa111
-
21ic下载 打赏20.00元 3天前
用户:liqiang9090
-
21ic下载 打赏15.00元 3天前
用户:ningmengge
-
21ic下载 打赏10.00元 3天前
用户:mulanhk
-
21ic下载 打赏5.00元 3天前
用户:asys
-
21ic下载 打赏10.00元 3天前
用户:舞蹈荀彧
-
21ic小能手 打赏5.00元 3天前
资料:磁编码器开源方案
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
江岚 打赏20.00元 3天前
-
江岚 打赏50.00元 3天前
-
江岚 打赏20.00元 3天前
-
江岚 打赏10.00元 3天前
-
21ic小能手 打赏10.00元 3天前
-
21ic小能手 打赏8.00元 3天前
-
21ic小能手 打赏8.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏3.00元 3天前




全部评论(0)