CRC32的計算方法

來源:生活大全幫 1.55W

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數值表。

熱門標籤