CRC校验码计算详解与例题

发布时间:2026/9/1 7:43:37
CRC校验码计算详解与例题 例题CRC-3 计算题目待发送数据为101101生成多项式 G(x) x³ x 1求 CRC 校验码和最终发送的码字。第一步确定生成多项式的二进制表示G(x) x³ x 1按各次幂写出系数幂次x³x²x¹x⁰系数1011所以 G(x) 对应二进制1011阶数 r 3。第二步数据后面补 r 个 0r 3在数据101101后面补 3 个 0补零后101101000第三步模 2 除法核心步骤用101101000除以1011规则逐位对齐做 XOR异或不借位不进位。被除数101101000 除数 1011第 1 轮取前 4 位1011与1011异或1011 ⊕ 1011 ------ 0000余000第 2 轮当前完整的余数为00001000把左边的4个0直接舍弃跳过1000与1011进行运算→011此时所有位已处理完最终余数为011。余数位数不足 3 位时前面补 0 凑齐 r 位。这里余数恰好是 3 位。第四步得到校验码和发送码字CRC 校验码余数011最终发送码字 原始数据 余数 101101 011第五步接收端验证接收端收到101101011用同样的1011做模 2 除法如果余数为000说明传输无误否则说明出错。由于发送时就是按这个规则构造的所以接收端除完余数一定为 0验证通过。再来一个有余数的例子加深理解数据110101G(x) x³ x 11011补 3 个 0 →110101000110101000 ⊕ 1011 ← 第1轮前4位 1101 ⊕ 1011 0110 ------ 0110 1100 ← 拉下一位1 → 1100 ⊕1011 ← 第2轮1100 ⊕ 1011 0111 ----- 0111 1110 ← 拉下一位0 → 1110 ⊕1011 ← 第3轮1110 ⊕ 1011 0101 ----- 0101 1010 ← 拉下最后一位0 → 1010 ⊕1011 ← 第4轮1010 ⊕ 1011 0001 ----- 0001最终余数 001CRC 校验码001最终发送码字110101 001接收端收到110101001用1011做模 2 除法余数为000验证通过。计算要点速记补零数据后补 r 个 0r 生成多项式阶数模 2 除法对齐后做 XOR不看大小只看首位是否为 1余数 校验码位数不足 r 位时前面补 0发送码字 原始数据 校验码验证接收端用同样的除数除整个码字余数为 0 则无错