crc 是先調入一值是全「1」的 16 位暫存器,然後呼叫一過程將訊息中連續的 8 位位元組各當前暫存器中的值進行處理。僅每個字元中的 8bit 資料對 crc 有效,起始位和停止位以及奇偶校驗位均無效。
crc 校驗位元組的生成步驟如下:
裝乙個 16 位暫存器,所有數字均為 1。
取被校驗串的乙個位元組與 16 位暫存器的高位位元組進行「異或」運算。運算結果放
入這個 16 位暫存器。
把這個 16 暫存器向右移一位。
若向右(標記位)移出的數字是 1,則生成多項式 1010 0000 0000 0001 和這個暫存器進行「異或」運算;若向右移出的數字是 0,則返回步驟(3)。
重複步驟
(3)和步驟
(4),直至移出 8 位。
取被校驗串的下乙個位元組
重複步驟
(3) ~ 步驟
(6),直至被校驗串的所有位元組均與 16 位暫存器進行「異或」運算,並移位8 次。
這個 16 位暫存器的內容即 2 位元組 crc 錯誤校驗碼
private static string getcrc(byte data)
} return integer.tohexstring(wcrc);
}
CRC16校驗演算法實現
迴圈冗餘碼校驗英文名稱為cyclical redundancy check,簡稱crc。它是利用除法及餘數的原理來作錯誤偵測 error detecting 的。實際應用時,傳送裝置計算出crc值並隨資料一同傳送給接收裝置,接收裝置對收到的資料重新計算crc並與收到的crc相比較,若兩個crc值不同...
CRC16 演算法及c實現
標準crc生成多項式如下表 名稱 生成多項式 簡記式 標準引用 crc 4 x4 x 1 3 itu g.704 crc 8 x8 x5 x4 1 0x31 crc 8 x8 x2 x1 1 0x07 crc 8 x8 x6 x4 x3 x2 x1 0x5e crc 12 x12 x11 x3 x ...
CRC16 校驗演算法
1 迴圈校驗碼 crc碼 是資料通訊領域中最常用的一種差錯校驗碼,其特徵是資訊字段和校驗欄位的長度可以任意選定。2 生成crc碼的基本原理 任意乙個由二進位制位串組成的 都可以和乙個係數僅為 0 和 1 取值的多項式一一對應。例如 1010111對應的多項式為x6 x4 x2 x 1,而多項式為x5...