java计算CRC16校验码
java计算校验码的一个公式,亲测可行有效
/*** 计算CRC16校验码** @param data 需要校验的字符串* @return 校验码*/public static String getCRC(String data) {data = data.replace(" ", "");int len = data.length();if (!(len % 2 == 0)) {return "0000";}int num = len / 2;byte[] para = new byte[num];for (int i = 0; i < num; i++) {int value = Integer.valueOf(data.substring(i * 2, 2 * (i + 1)), 16);para[i] = (byte) value;}return getCRC(para);}/*** @param bytes 字节数组* @return {@link String} 校验码*/public static String getCRC(byte[] bytes) {//CRC寄存器全为1int CRC = 0x0000ffff;//多项式校验值int POLYNOMIAL = 0x0000a001;int i, j;for (i = 0; i < bytes.length; i++) {CRC ^= ((int) bytes[i] & 0x000000ff);for (j = 0; j < 8; j++) {if ((CRC & 0x00000001) != 0) {CRC >>= 1;CRC ^= POLYNOMIAL;} else {CRC >>= 1;}}}//结果转换为16进制String result = Integer.toHexString(CRC).toUpperCase();if (result.length() != 4) {StringBuffer sb = new StringBuffer("0000");result = sb.replace(4 - result.length(), 4, result).toString();}//交换高低位return result.substring(2, 4) + result.substring(0, 2);}
java计算CRC16校验码相关推荐
- php crc16校验算法,PHP串口通信中计算crc16校验码
最近使用PHP开发串口通信业务,在发送485Modbus命令时,基本都要计算CRC16校验码.网上搜索了很多文章,很多都计算的不对.本文记录搜索到的正确的计算方法. 代码如下:/** * crc16计 ...
- [技术栈]CRC校验原理及C#代码实现CRC16、CRC32计算FCS校验码
1.CRC.FCS是什么 比奇小说网 https://m.biqi.org/ CRC,全称Cyclic Redundancy Check,中文名称为循环冗余校验,是一种根据网络数据包或计算机文件等数据 ...
- Android CRC16计算产生校验码
好久没有更新啦,最近做了一个关于CRC16校验的项目,把这个方法分享给大家,代码如下: /** * CRC16计算产生校验码 * * @param data 需要校验的数 ...
- PHP CRC16 校验码的算法怎么使用
PHP CRC16 校验码的算法如何使用 最近用到CRC16, 我现在就是要把 010301180001 算出CRC16的校验码,通过其他工具,可以得到 校验码是 05F1 最后完整的代码就是 010 ...
- python crc-16 crc-16校验码 crc-16校验算法 ppp(MAC)帧检验序列FCS
python crc-16 crc-16校验码 crc-16校验算法 ppp(MAC)帧检验序列FCS 想弄明白这里要看多几遍,配合下面的例子能更快理解. 第一.CRC-16校验码计算方法: 常用查表 ...
- Java实现CRC16校验算法
本文主要记录java版的crc校验算法,顺带贴上c的crc校验函数 先上c的校验函数,本文java版的校验就是根据此函数而来的,希望能帮到大家 当时开发时通过一个在线检验工具辅助开发的.工具链接戳我 ...
- 十六进制数据的CRC16校验码自写软件
关于十六进制数据的CRC16校验码自写软件安装包 十六进制数据的CRC16校验码(0XA001)自写软件 链接与图片 全部代码 十六进制数据的CRC16校验码(0XA001)自写软件 这里分享一个自己 ...
- JAVA实现CRC16校验
一.校验码 CRC16占用两个字节,包含了一个 16 位的二进制值.CRC 值由传输设备计算出来,然后附加到数据帧上,接收设备在接收数据时重新计算 CRC 值,然后与接收到的 CRC 域中的值进行比较 ...
- 得到CRC16校验码的常见几个标准的算法及C语言实现
CRC16常见的标准有以下几种,被用在各个规范中,其算法原理基本一致,就是在数据的输入和输出有所差异,下边把这些标准的差异列出,并给出C语言的算法实现. CRC16_CCITT:多项式x16+x12+ ...
最新文章
- 10任务栏全屏时老是弹出_Deepin 15.10 发布,深度操作系统
- 特斯拉“国王”王权不保
- 研发团队来了高颜值的妹子,这结局万万没想到 | 每日趣闻
- 一些算法入门应该明白的东西
- linux测试nvme性能,使用Python测试NVMe吞吐量
- Magento教程 8:如何新增首页选单?
- JavaScript判断浏览器 Browser detect
- 22. C# -- 抽象类和接口
- mysql 锁设置密码_[转载]mysql锁小结
- 机器学习笔记-XGBoost
- Lecture 7:策略梯度
- nodejs下载 安装 配置环境
- Photoshop:渐变工具的使用
- 今日开放式基金净值表
- 演示笔记本重装系统win10教程,笔记本电脑安装win10系统
- LeetCode第9题 回文数(Palindrome Number)
- 多因子选选股MATLAB代码,MatlabCode 多因子模型构建。多因子模型是量化选股中最重要的一类模型 联合开发网 - pudn.com...
- 数据标准是什么?企业如何做好数据管理?
- java全栈系列之JavaSE-编写银行基金收益系统031
- kerberos 部署