查表法計算CRC

2021-05-23 12:52:37 字數 637 閱讀 9066

(查表法)crc檢驗碼的計算過程

(1)將上次計算出的crc校驗碼右移乙個位元組;

(2)將移出的這個位元組與新的要校驗的位元組進行xor 運算;

(3)用運算出的值在預先生成碼表中進行索引,獲取對應的值(稱為余式);

(4)用獲取的值與第(1)步右移後的值進行xor 運算;

(5)如果要校驗的資料已經處理完,則第(4)步的結果就是最終的crc校驗碼。如果還有資料 要進行處理,則再轉到第(1)步執行。

public static byte getcrc8(byte data, int startindex, int datalength)

return result; }

public static byte getcrc16(byte data, int startindex, int datalength)

return result; }

#region crc表

///

/// 8位crc表

///

static readonly byte crc8_table = new byte ;

static readonly ushort crc16_table = new ushort ;

#endregion

整合CRC 查表法

這裡,不討論crc的糾錯原理以及為什麼要選下面提及的生成多項式,只是針對以下的生成多項式,如何獲得crc校驗碼,作乙個比較詳細的說明。標準crc生成多項式如下表 名稱 生成多項式 簡記式 標準引用 crc 4 x4 x 1 3 itu g.704 crc 8 x8 x5 x4 1 0x31 crc ...

crc16碼表的使用 查表法計算CRC16校驗值

crc16是微控制器程式中常用的一種校驗演算法。依據所採用多項式的不同,得到的結果也不相同。常用的多項式有crc 16 ibm和crc 16 ccitt等。本文 採用的多項式為crc 16 ibm x16 x15 x2 1。閒言少敘,下面是查表法計算crc16的 檔名稱 crc16.c 簡要描述 c...

arctan查表法 查表法

查表法是將一些事先計算好的結果,儲存在常量陣列中,執行時節省計算開銷。例如,計算位元組中位1的個數,int countbits unsigned char dat static char nbittab 256 return nbittab dat 或將位元組按位逆序,unsigned char r...