CRC(Cyclic Redundancy Check)循环冗余校验码,是常用的校验码.对通信的可靠性检查就需要‘校验’,校验是从数据本身进行检查,它依靠某种数学上约定的形式进行检查,校验的结果是可靠或不可靠,如果可靠就对数据进行处理,如果不可靠,就丢弃重发或者进行修复。 CRC码是由两部分组成,前部分是信息码,就是需要校验的信息,后部分是校验码,如果CRC码共长n个bit,信息码长k个bit,就称为(n,k)码。 它的编码规则是: 1、首先将原信息码(kbit)左移r位(k+r=n) 2、运用一个生成多项式g(x)(也可看成二进制数,是事先定义好了的)用模2除上面的式子,得到的余数就是校验码。 3.多项式的二进制数位数是r(原信息的左移位)+1位. 非常简单,要说明的:模2除就是在除的过程中用模2加,模2加实际上就是我们熟悉的异或运算,就是加法不考虑进位,公式是: 0+0=1+1=0,1+0=0+1=1 即‘异’则真,‘非异’则假。 有了加法就可以用来定义模2除法,于是就可以用生成多项式g(x)生成CRC校验码。 例如: g(x)=X4+X3+X2+1,(7,3)码,信息码110产生的CRC码就是: 101 商 11101 | 1100000 11101 10100 11101 1001 余数 余数是1001,所以CRC码是110,1001 标准的CRC码是,CRC-CCITT和CRC-16,它们的生成多项式是: CRC-CCITT=x16+x12+x5+1 CRC-16=x16+x15+x2+1 |
纠错码CRC详细计算(精华)
精选 转载1. CRC
CRC-32=......
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
lua crc校验 crc校验功能
一、基础知识 1、CRC简介: CRC即循环冗余校验码(Cyclic Redundancy Check):是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环
lua crc校验 CRC校验算法原理 多项式 校验码 数据