Java生成CRC16資料校驗碼

2021-07-25 15:14:56 字數 742 閱讀 8860

crc即迴圈冗餘校驗碼(cyclic redundancy check[1]  ):是資料通訊領域中最常用的一種查錯校驗碼,其特徵是資訊字段和校驗欄位的長度可以任意選定。迴圈冗餘檢查(crc)是一種資料傳輸檢錯功能,對資料進行多項式計算,並將得到的結果附在幀的後面,接收裝置也執行類似的演算法,以保證資料傳輸的正確性和完整性。

package sk.ann;

public class crccheck

/*** 計算產生校驗碼

* @param data 需要校驗的資料

* @return 校驗碼

*/public static string make_crc(byte data)

int len = buf.length;

int crc = 0xffff;//16位

for (int pos = 0; pos < len; pos++) else

for (int i = 8; i != 0; i--) else

// else lsb is not set

crc >>= 1; // just shift right}}

string c = integer.tohexstring(crc);

if (c.length() == 4) else if (c.length() == 3) else if (c.length() == 2)

return c;

}}

CRC 16校驗原理

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

碼crc校驗 CRC16校驗計算流程

首先再次確認計算步驟 1 預置1個16位的暫存器為十六進製制ffff 即全為1111 1111 1111 1111 稱此暫存器為crc暫存器 2 把第乙個位轉換成8位二進位制資料 既通訊資訊幀的第乙個位元組 與16位的crc暫存器的低8位相異或,把結果放於crc暫存器,高八位資料不變 3 把crc暫...

CRC16校驗的學習

一般一些工業上儀器儀表都會選擇crc16校驗,而寫程式對幀資料的校驗也需要選擇crc16校驗看看對不對。所以選擇crc16校驗還是很有必要的。當然crc是2位元組的,具體儲存方式大端儲存還是小端儲存,不同機器不一樣。crc的初值也可能不一樣有的是0x0000,而有的又卻是0xffff具體怎麼選還有根...