首页 > 编程知识 正文

求crc校验码例题(循环冗余校验码详解)

时间:2023-05-05 08:55:13 阅读:73164 作者:1699

书面说明循环冗馀校验码(CRC )广泛应用于数据通信领域和磁介质存储系统。 这利用生成多项式不为k个数据生成r个奇偶校验位来编码,编码长度为k r。 这样,循环冗馀校验码由两部分组成,左侧为消息代码(数据),右侧为校验码。 如果消息代码占用k位,则校验码占用n-k位。 这里,由于n是CRC码的字长,所以CRC码也被称为“n,k”码。 校验码由信息生成,校验码的位数越长,对该代码的检查能力就越高。 在求出CRC编码时,使用模式2运算。 2级加减运算的规则是按位运算,不发生借位和进位。

通常,在编码信息时,在信息末尾加上复选框信息,以便生成的符号可以除以生成多项式的值的馀数为0。 如果接收端接收编码并进行检查运算的结果馀数不为0,则在传输中发生错误。

模2除法与普通除法的区别

一般的二进制除法运算需要进位借位,然后减去两个数,但2级除法运算不需要进位借位操作。 两个数进行异或运算。 异或如果相同,则为0,与1不同。 例如,1和0是1,0和0是0,1和1是1。

请参考下图

CRC计算示例

4x3x1对应的二进制数是11011,怎么计算?

x4对应于1 0000,x3对应于1000,x2对应于0 * 100,x对应于10。 这样加起来就是11011。

接着,根据生成多项式的最高指数位决定校正馀数的位数,如果x4 x3 x 1中的最高指数位为4,则在原始信息后追加4个0,对其进行模数2运算。

补充CRC的主要目的是检查错误,设计的初衷是不考虑纠错,但不意味着不能纠错。 但是,其纠错比较复杂,日常考试中要么考察CRC的错误检测运算,要么要求校验码。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。