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数据校验码相关推荐
- 16进制字符串生成CRC-16/CCITT-FALSE校验码
/*** @author yichuan@iscas.ac.cn* @version 1.0* @date 2021/11/8 21:51*/ public class Crc {/*** CRC-1 ...
- 异或校验 java_Java生成异或校验码、和校验码、CRC校验码、补码求和校验码四种校验码及校验码匹配工具类...
Java生成异或校验码.和校验码.CRC校验码.补码求和校验码四种校验码及校验码匹配工具类 /** * 报文校验码验证规则 */ public class Verification { /** * 校 ...
- CRC-16/X25、CRC-16/CCITT_FALSE、CRC-16/XMODEM校验码
这几天做北斗定位设备的协议解析,需要进行CRC-16的校验,设备使用的参数模型是CRC-16/X25,本人使用的是Java语言,网上没找到关于CRC-16/X25 的Java版本,都是C语言的多.转换 ...
- C# CRC16数据校验支持ModelBus和XMODEM校验模式
C# CRC16数据校验支持ModelBus和XMODEM校验模式 最近在研究C# CRC数据校验规则,之前用过ModelBus模式,但是这次的现场用到的是XMODEM模式,写一篇文章记录实现细节,方 ...
- 将一个字符串计算出CRC16/XMODEM校验码(4位)
将一个字符串计算出CRC16/XMODEM校验码(4位) unsigned short CRC16_XMODEM(unsigned char *puchMsg, unsigned int usData ...
- java生成文字二维码、url二维码
java生成文字二维码.url二维码 pom: 1)生成文字二维码 java工具类: 2)url地址生成二维码 java工具类: pom: <dependency><groupId& ...
- 数据校验码(奇偶校验,海明校验,循环冗余校验)内容总结及个人经验分享
引言: 常用的数据校验方法有三种:奇偶校验,海明校验和循环冗余校验(CRC).其对应的是三种不同而又有关联的码制,以下编者打算从它们的编码原理,需要的基础知识以及实例来对此进行大致的分析.在了解数据校 ...
- JAVA生成的二维码以及给二维码添加背景图片
JAVA生成的二维码以及给二维码添加背景图片** 1.页面只需一行代码即可(用ajax请求得不到响应,也可以用表单提交) window.location.href = "${ctx}/qrc ...
- Java生成解析二维码
Java生成二维码 一.介绍 1. 理解二维码 黑点代表二进制中的1,白点代表二进制中的0,通过1和0的排列组合,在二维空间记录数据.通过图像输入设备,读取其中的内容. 2. 二维码分类 二维码有不同 ...
最新文章
- 建造者模式(Builder Pattern)简单随笔
- 某种密码(password.*)
- 【转】托管函数的挂钩(完美版)
- python 调用bat失败_要想顺利通过Python面试,你最起码需要达到白银段位!
- 洛谷 4115 Qtree4——链分治
- 栈应用_检测成对符号是否正确使用(代码、分析、汇编)
- linux mysql5.6.27源码安装和错误解决
- 【java基础知识】设置表格内容居中显示,表格字体大小调整,表格列宽调整
- python处理网页弹窗_Selenium2+Python自动化-处理浏览器弹窗(转载)
- mybatis框架搭建学习初步
- 教你一招:Excel中使用vlookup函数查询序列所对应的值
- EndNote文献输出引用格式自定义修改与编辑界面解读
- 【AllenNLP】: 自定义predictor—输入文本输出中文
- 沟通:如何用沟通解决80%的工作问题?
- 对于教育改革的一些省思
- 使用LIS2DH12三轴加速度传感器检测震动与倾斜角度
- 人家也是干 IT 的。
- 【致远FAQ】V8.0sp2_8.0sp2版本协同BPM平台的人员匹配去重
- [转载]中国移动深度定制首推“0元购TD手机”补贴政策
- 区块链+慈善究竟帮助过谁?