CRC循环冗余校验是将输出的数据左移N位(N是多项式的位数如:CRC-16那么N=16)异或一个多项式后得到的最终数据在加载到移位后的数据末尾这样就完成了CRC校验码。
接收后解开数据与计算校验码一样,将接收到的数据(不用左移了)异或多项式最终得到的数位0 说明传输正常。
例:CRC-4 采用的多项式y(x)=x4+x2+1;x=2;y(x)=19;
将数据转换位二进制数:19=10011;原数据:0X45=01000101;
010001010000
10011 异或时记住高位必要位1
00010010000
10011000
00001000
得到的校验码就是8;
现在将码解开判断是否为零
010001011000
10011
00010011000
10011000
00000000
得到的数位0 说明数据正常。
文章评论(0条评论)
登录后参与讨论