當前位置:趣味科普網>經驗>

CRC32的計算方法

經驗 閱讀(1.62W)

CRC32的計算方法

CRC的本質是模-2除法的餘數,採用的除數不同,CRC的型別也就不一樣。通常,CRC的除數用生成多項式來表示。最常用的CRC碼及生成多項式名稱生成多項式。

CRC-12:

CRC-16:

CRC-CCITT:

CRC-32:

CRC校驗實用程式庫在資料儲存和資料通訊領域,為了保證資料的正確,就不得不採用檢錯的手段。在諸多檢錯手段中,CRC是最著名的一種。CRC的全稱是迴圈冗餘校驗。

通常的CRC演算法在計算一個數據段的CRC值時,其CRC值是由求解每個數值的CRC值的和對CRC暫存器的值反覆更新而得到的。這樣,求解CRC的速度較慢。通過對CRC演算法的研究,我們發現:一個8位數據加到16位累加器中去,只有累加器的高8位或低8位與資料相作用,其結果僅有256種可能的組合值。

因而,我們可以用查表法來代替反覆的運算,這也同樣適用於CRC32的計算。本文所提供的程式庫中,函式crchware是一般的16位CRC的演算法。mk-crctbl用以在記憶體中建立一個CRC數值表。