CRC32演算法實現

2021-07-31 05:05:20 字數 496 閱讀 5581

crc32 檢錯能力極強,開銷小,易於用編碼器及檢測電路實現。從其檢錯能力來看,它所不能發現的錯誤的機率僅為0.0047%以下。從效能上和開銷上考慮,均遠遠優於奇偶校驗及算術和校驗等方式。因而,在資料儲存和資料通訊領域,crc無處不在:著名的通訊協議x.25的fcs(幀檢錯序列)採用的是crc-ccitt,arj、lha等壓縮工具軟體採用的是crc32,磁碟驅動器的讀寫採用了crc16,通用的影象儲存格式gif、tiff等也都用crc作為檢錯手段。

實現**如下:

static const u_int32 crc32_table[256] =

;

static u_int32 calculate_crc32 (void *pstart, u_int32 usize)

/* xor the output value */

return ucrcvalue ^ xorot;

}

CRC32校驗 c實現

環境 vs2013 成功編譯並執行 include include include pragma warning disable 4996 這樣防止警告 dword crc32table 256 0x04 c1 1d b7 dword bitreverse dword poly 進行位顛倒 retu...

深入了解crc32演算法

由於專案需要,解決乙個流 檔案的crc32校驗碼。網上查了很多的資料,發現了此校驗碼和生成多項式以及演算法本身都有關係。對於不同型別的檔案所使用的多項式以及演算法不同,對於不同的生成多項式所生成的crc32表不同,不同的演算法也會產生不同的結果。下面分模擬較兩種不同用途的crc32校驗碼的計算方法。...

CRC32演算法詳細推導(1)

from 作為blog再次發出來,詳細描述一下crc32演算法的推導過程。crc 演算法的數學基礎就不再多囉嗦了,到處都是,簡單提一下。它是以 gf 2 多項式算術為數學基礎的,gf 2 多項式中只有乙個變數 x 其係數也只有 0 和 1 比如 1 x 6 0 x 5 1 x 4 0 x 3 0 x...