日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java生成CRC16数据校验码

發布時間:2025/4/16 java 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java生成CRC16数据校验码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

CRC即循環冗余校驗碼(Cyclic Redundancy Check[1] ?):是數據通信領域中最常用的一種查錯校驗碼,其特征是信息字段和校驗字段的長度可以任意選定。循環冗余檢查(CRC)是一種數據傳輸檢錯功能,對數據進行多項式計算,并將得到的結果附在幀的后面,接收設備也執行類似的算法,以保證數據傳輸的正確性和完整性。

package sk.ann;public class CRCCheck {public static void main(String[] args){String str="Java生成CRC16數據校驗碼";byte[] data=str.getBytes();System.out.println(CRCCheck.Make_CRC(data));}/*** 計算產生校驗碼* @param data 需要校驗的數據* @return 校驗碼*/public static String Make_CRC(byte[] data) {byte[] buf = new byte[data.length];// 存儲需要產生校驗碼的數據for (int i = 0; i < data.length; i++) {buf[i] = data[i];}int len = buf.length;int crc = 0xFFFF;//16位for (int pos = 0; pos < len; pos++) {if (buf[pos] < 0) {crc ^= (int) buf[pos] + 256; // XOR byte into least sig. byte of// crc} else {crc ^= (int) buf[pos]; // XOR byte into least sig. byte of crc}for (int i = 8; i != 0; i--) { // Loop over each bitif ((crc & 0x0001) != 0) { // If the LSB is setcrc >>= 1; // Shift right and XOR 0xA001crc ^= 0xA001;} else// Else LSB is not setcrc >>= 1; // Just shift right}}String c = Integer.toHexString(crc);if (c.length() == 4) {c = c.substring(2, 4) + c.substring(0, 2);} else if (c.length() == 3) {c = "0" + c;c = c.substring(2, 4) + c.substring(0, 2);} else if (c.length() == 2) {c = "0" + c.substring(1, 2) + "0" + c.substring(0, 1);}return c;} }

總結

以上是生活随笔為你收集整理的Java生成CRC16数据校验码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。