CRC循环冗余编码
原理
类似于模的运算,以模12的10进制数举例:
发送的数据为3// 需要把他构造成一个可以被12整除的的数据,即:30+x = n12,其中x为找到的数据
30 / 12 = 2*12+6 // 其中2为商,也是上面表达n的值,6即x的值
得到的编码数据:30+6 = 36
计算二进制数据的表达式为:
D·2^(n-k) + F = zP
// D:k位的二进制数据
// F:n-k位的二进制,也叫生成多项式,类比上面的余数6
// z:正整数,类比上面的商2
// P:n-k+1位二进制数据,多项式,类比上面的模12,除数
// 整个表达式的意义是:k位的数据+n-k位的余数 = z倍的多项式
相关概念罗列
伽罗华域(Galois Field,GF)
本原多项式G(x)
多项式的mod运算