永发信息网

求助crc32的原理

答案:2  悬赏:20  手机版
解决时间 2021-03-27 15:55
求助crc32的原理
最佳答案
crc32的原理:利用除法及余数的原理来作错误侦测(Error Detecting)的。实际应用时,发送装置计算出CRC值并随数据一同发送给接收装置,接收装置对收到的数据重新计算CRC并与收到的CRC相比较,若两个CRC值不同,则说明数据通讯出现错误。

  CRC 校验实用程序库在数据存储和数据通讯领域,为了保证数据的正确,就不得不采用检错的手段。
全部回答
数据结构算法:CRC32算法实现原理
简而言之,CRC是一个数值。该数值被用于校验数据的正确性。CRC数值简单地说就是通过让你需要做处理的数据除以一个常数而得到的余数。当你得到这个数值后你可以将这个数值附加到你的数据后,当数据被传送到其他地方后,取出原始数据(可能在传送过程中被破坏)与附加的CRC数值,然后将这里的原始数据除以之前那个常数(约定好的)然后得到新的CRC值。比较两个CRC值是否相等即可确认你的数据是否在传送过程中出现错误。
那么,如何让你的数据除以一个常数?方法是对你的数据进行必要的编码处理,逐字节处理成数字。
那么这个常数是什么?你不必关注它是什么,也不需要关注它是如何获得的。当你真的要动手写一个CRC的实现算法时,我可以告诉你,CRC的理论学家会告诉你。不同长度的常数对应着不同的CRC实现算法。当这个常数为32位时,也就是这里所说的CRC32。
以上内容你不必全部理解,因为你需要查阅其他资料来获取CRC完整的理论介绍。
The mathematics behind CRC ?
很多教科书会把CRC与多项式关联起来。这里的多项式指的是系数为0或1的式子,例如:a0 + a1*x + a2*x^2 + ... + an*x^n。其中a0, a1, ..., an要么为0要么为1。我们并不关注x取什么值。
(如果你要关注,你可以简单地认为x为2) 这里把a0, a1, ..., an的值取出来排列起来,就可以表示比特流。例如 1 + x + x^3所表示的比特流就为:1101。部分资料会将这个顺序颠倒,这个很正常。
什么是生成多项式?
所谓的生成多项式,就是上面我所说的常数。注意,在这里,一个多项式就表示了一个比特流,也就是一堆1、0,组合起来最终就是一个数值。例如CRC32算法中,这个生成多项式为:c(x) = 1 + x + x^2 + x^4 + x^5 + x^7 + x^8 + x^10 + x^11 + x^12 + x^16 + x^22 + x^23 + x^26 + x^32。其对应的数字就为:
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
属相三合什么意思
求一篇退伍二十二年退伍老兵八一聚会会长发言
小猫咪得了眼病怎么办
激光为什么穿不透透明塑料
北京小学走读部对口中学是哪所?
易烊千玺肢体眼球吓
Iphone 电话本不能按自动排序了,为啥?
阳台推拉门需要装带摇头的吗
洁丰干洗(红旗路)(崇文街道红旗路陶然居北400
央行2o丨5年6月定期存款利率
3M净水器净享2500怎样安装
有红旗牌笔记本电脑吗
89×7/11简算
赤小豆薏仁黄芪茯苓煮水喝有什么作用?
怎么能让原来的双眼皮变大
推荐资讯
做烘焙味好美香草精和香草荚味道一样吗?
燃气灶哪个牌子好k
dreamweaver的网页模板如何设置可编辑区域
21710000读作什么
mini cooper zb31v和minicountryman有什么区
解方程 5/6X=20 5/4除5/6=2/
形容汗水的比喻句有哪些?比如“汗水像什么”
问下懂行的大神,这块是新疆和田玉籽料吗?买
一个林三个撇是什么字
滤池反冲洗的控制指标有什么?如何评价反冲洗
清远市救助管理站地址在哪,我要去那里办事,
机械厂的技术员主要做什么的?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?