首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么在crc中使用模2算法?

为什么在crc中使用模2算法?
EN

Stack Overflow用户
提问于 2017-07-16 00:27:56
回答 1查看 828关注 0票数 1

我学习了一种称为crc的错误检测技术。crc计算以模2运算完成,没有进位加法或在减法中借用。我想知道为什么crc采用模2运算而不是常规的二进制运算。它更容易在数字电路中实现吗?

EN

回答 1

Stack Overflow用户

发布于 2019-03-07 12:52:21

也许迟来总比不到好。循环冗余校验将数据视为多项式的1位系数串,因为系数是模2的数字。从数学角度来看,对于n位循环冗余校验,数据多项式乘以x^n,有效地将n个0位系数加到数据上,然后将该数据+0除以n+1位循环冗余校验多项式,得到n位余数,这就是循环冗余校验。如果使用CRC对数据进行“编码”,则从数据+0中“减去”剩余部分,但对于单比特系数,加法和减法都是xor,因此CRC只是附加到数据上,替换附加到数据上的0来生成CRC。

不跨系数进位或借用的原因是因为它是多项式数学。

尽管不是针对CRC,里德-所罗门码也有些类似,但是多项式系数可以是模2以外的某个素数的数,例如929,并且对于除2以外的素数,重要的是跟踪何时使用模2以外的素数的加法或减法。

https://en.wikipedia.org/wiki/Reed%E2%80%93Solomon_error_correction

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45120400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档