對通信的可靠性檢查就需要‘校驗’,校驗是從數據本身進行檢查,它依靠某種數學上約定的形式進行檢查,校驗的結果是可靠或不可靠,如果可靠就對數據進行處理,如果不可靠,就丟棄重發或者進行修復。
CRC碼是由兩部分組成,前部分是信息碼,就是需要校驗的信息,後部分是校驗碼,如果CRC碼共長n個bit,信息碼長k個bit,就稱為(n,k)碼。它的編碼規則是:
1、首先將原信息碼(kbit)左移r位(k+r=n)
2、運用一個生成多項式g(x)(也可看成二進制數)用模2除上面的式子,得到的餘數就是校驗碼。
非常簡單,要說明的:模2除就是在除的過程中用模2加,模2加實際上就是我們熟悉的異或運算,就是加法不考慮進位,公式是:
0+0=1+1=0,1+0=0+1=1
即‘異’則真,‘非異’則假。
由此得到定理:a+b+b=a也就是‘模2減’和‘模2加’直值表完全相同。有了加減法就可以用來定義模2除法,於是就可以用生成多項式g(x)生成CRC校驗碼。