基於Qt的CRC16校驗實現(查表法)

2021-09-17 21:38:00 字數 560 閱讀 2945

簡介:

crc為校驗和的一種,是兩個位元組資料流採用二進位制除法(沒有進製,使用xor來代替減法)相除所得到的餘數。其中被除數是需要計算校驗和的資訊資料流的二進位制表示;除數是乙個長度為(n+1)的預定義(短)的二進位制數,通常用多項式的係數來表示。

rc16碼表:

static const quint16 crc16table =

;

實現函式:

qstring crc16formodbus(const qstring &hextext)

return qstring("%1").arg(crc16 , 4, 16, qlatin1char('0')); //拼湊成4個16進製制字元,空位補0

// return qstring::number(crc16,16).toupper();

// return crc16;

}

CRC 16校驗原理

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

CRC16校驗演算法實現

迴圈冗餘碼校驗英文名稱為cyclical redundancy check,簡稱crc。它是利用除法及餘數的原理來作錯誤偵測 error detecting 的。實際應用時,傳送裝置計算出crc值並隨資料一同傳送給接收裝置,接收裝置對收到的資料重新計算crc並與收到的crc相比較,若兩個crc值不同...

CRC16校驗研究與實現

最近工作需要,使用了crc16校驗。經過網上學習,發現有很多種crc16校驗演算法。經過多處資料總結,形成一種通用的crc16校驗方法。crc計算原理就不再敘述 網上很多 現在介紹crc校驗的幾個關鍵引數 poly 生成項的簡寫,以16進製表示。例如 crc 32即是0x04c11db7,忽略了最高...