CRC演算法原理

2021-07-05 05:18:14 字數 917 閱讀 4259

演算法原理:

假設資料傳輸過程中需要傳送15位的二進位制資訊g=101001110100001,這串二進位製碼可表示為代數多項式g(x) = x^14 + x^12 + x^9 + x^8 + x^7 + x^5 + 1,其中g中第k位的值,對應g(x)中x^k的係數。將g(x)乘以x^m,既將g後加m個0,然後除以m階多項式h(x),得到的(m-1)階餘項r(x)對應的二進位製碼r就是crc編碼。h(x)可以自由選擇或者使用國際通行標準,一般按照h(x)的階數m,將crc演算法稱為crc-m,比如crc-32、crc-64等。

根據異或運算法則,舉乙個例子使用crc-8演算法求101001110100001的效驗碼。查閱得知,crc-8標準的h(x) = x^8 + x^7 + x^6 + x^4 + x^2 + 1,既h是9位的二進位制串111010101。其實,查閱得11010101的,可是得滿足下面的條件:

應滿足以下條件:

a、生成多項式的最高位和最低位必須為1。

b、當被傳送資訊(crc碼)任何一位發生錯誤時,被生成多項式做模2除后應該使餘數不為0。

c、不同位發生錯誤時,應該使餘數不同。

d、對餘數繼續做模2除,應使餘數迴圈。

crc碼的生成步驟 :

1、將x的最高冪次為r的生成多項式g(x)轉換成對應的r+1位二進位制數。

2、將資訊碼左移r位,相當與對應的資訊多項式c(x)*2r

3、用生成多項式(二進位制數)對資訊碼做模2除,得到r位的餘數。

4、將餘數拼到資訊碼左移後空出的位置,得到完整的crc碼。

下面用乙個例子來說明一下:

經過迭代運算後,最終得到的r是10001100,這就是crc效驗碼。

CRC校驗原理

crc校驗原理 1 迴圈校驗碼 crc碼 是資料通訊領域中最常用的一種差錯校驗碼,其特 徵是資訊字段和校驗欄位的長度可以任意選定。2 生成crc碼的基本原理 任意乙個由二進位制位串組成的 都可以和乙個系 數僅為 0 和 1 取值的多項式一一對應。例如 1010111對應的多項 式為x6 x4 x2 ...

CRC校驗原理

以下內容摘自筆者即將出版的最新著作 深入理解計算機網路 一書。本書將於12月底出版上市,敬請留意!本書原始目錄參見此文 5.3.2 迴圈冗餘校驗檢錯方案 上節介紹的奇偶校驗碼 pcc 只能校驗一位錯誤,本節所要介紹的迴圈冗餘校驗碼 crc 的檢錯能力更強,可以檢出多位錯誤。1.crc校驗原理 crc...

CRC校驗原理

基本概念 crc即迴圈校驗碼是資料通訊中最常用的一種差錯校驗碼。資訊欄位的長度和校驗碼的長度是任意的。基本原理 在k位資訊碼的後面加上r位校驗碼,整個長度是n位,n k r。給定乙個 n,r 碼,可以證明存在乙個最高次冪為r的多項式g x 根據g x 可以生成k位資訊的校驗碼,而g x 叫做這個cr...