本文共 1492 字,大约阅读时间需要 4 分钟。
微信搜索:编程笔记本。获取更多干货!
微信搜索:编程笔记本。获取更多干货!点击上方蓝字关注我,我们一起学编程
欢迎小伙伴们分享、转载、私信、赞赏微信搜索:编程笔记本。获取更多干货!
微信搜索:编程笔记本。获取更多干货!循环冗余码(CRC),又称为多项式码,是数据通信领域中最常用的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定。CRC 的工作方法是在发送端产生一个冗余码,附加在信息位后面一起发送到接收端,接收端收到的信息按发送端形成循冗余码同样的算法进行校验,如果发现错误,则通知发送端重发。
模 2 运算:
模 2 运算的加减乘除与常规二进制运算类似,不同的一点是:无进位、不借位。
一个例子:
1001 - 1100----------- 0101
生成多项式:
比如,G(x) = x^4 + x^3 + 1
是一个生成多项式,那么该生成多项式对应的二进制比特串就是:11001
。即:G(x) = 1*x^4 + 1*x^3 + 0*x^2 + 0*x^1 + 1*x^0
,取对应系数即可。
步骤:
一个例子:
微信搜索:编程笔记本。获取更多干货!
微信搜索:编程笔记本。获取更多干货!要发送的数据帧为 1101011011
,采用的 CRC 生成多项式是 P(x) = x^4 + x + 1
。
1、生成多项式的二进制比特串为:10011
,修改数据帧:11010110110000
;
1110
,修改数据帧:11010110111110
; 1100001010 ----------------- 10011 | 11010110110000 10011------------------------ 10011 10011------------------------ 010110 10011------------------------ 10100 10011------------------------ 1110
3、接收方用同样的方法进行除法运算,得到的余数为 0 ,表示数据帧未发生错误。
1100001010 ----------------- 10011 | 11010110111110 10011------------------------ 10011 10011------------------------ 010111 10011------------------------ 10011 10011------------------------ 00
微信搜索:编程笔记本。获取更多干货!
微信搜索:编程笔记本。获取更多干货!