推薦博文:https://mp.weixin.qq.com/s/RNHLZGPD9Ysbxb1FNDn6EA?
1、CRC原理:
2、CRC校驗碼的計算示例:
除數是隨機數或按標准選定,CRC的關鍵是如何求出余數(CRC校驗碼)。假設選擇的CRC生成多項式為G(x)=x^4+x^3+1 要求計算出二進制的序列10110011的CRC校驗碼。
(1)、
將多項式轉為二進制數,由G(x)=x^4+x^3+1得知,一共5位(總位數=最高位的冪次+1,即4+1=5)根據多項式的含義(多項式只列出二進制值為1的位,也就是這個二進制的第4位、第3位、第0位的二進制均為1,其它位均為0,所有二進制的比特串(除數)為11001
(2)、
A.原數幀:10110011
B.除數:11001 (5位數)
C.新數幀:在原數據幀后面補上(除數總位數-1個)0 ----> 10110011 0000
D.CRC校驗碼:C/B的余數,余數的位數只能比B少一位不夠在左邊補0,------> 10110011 0000/11001 = 100(這里只有三位,所以需要在100左邊補0為 0100)
E.新發送幀:在A后面加上D(10110011 0100), 接收端收到E,使用E/B看是否有余數,如果沒有余數則表明該幀在傳輸過程中沒有出錯,否則出了差錯 -----> 10110011 0100/11001 =10101000余數為0