(查表法)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...