CRC16校验的原理

假设数据传输过程中需要发送15位的二进制信息g=101001110100001,那么这串二进制码可表示为代数多项式g(x) = x^14 + x^12 + x^9 + x^8 + x^7 + x^5 + 1。将g(x)乘以x^m,既将g后加m个0,然后除以m阶多项式h(x),得到的(m-1)阶余项r(x)对应的二进制码r就是CRC编码。

备注:

g(x)和h(x)的除运算,可以通过g和h做xor(异或)运算。比如将11001与10101做xor运算

例子说明:

使用CRC-8算法求101001110100001的效验码。CRC-8标准的h(x) = x^8 + x^7 + x^6 + x^4 + x^2 + 1,既h是9位的二进制串111010101。

CRC16校验的原理_第1张图片

CRC16校验的原理_第2张图片 

 

参考文章:

https://blog.csdn.net/xing414736597/article/details/78693781
源于这里

你可能感兴趣的:(java编程专栏)