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校验码相关推荐

  1. php crc16校验算法,PHP串口通信中计算crc16校验码

    最近使用PHP开发串口通信业务,在发送485Modbus命令时,基本都要计算CRC16校验码.网上搜索了很多文章,很多都计算的不对.本文记录搜索到的正确的计算方法. 代码如下:/** * crc16计 ...

  2. [技术栈]CRC校验原理及C#代码实现CRC16、CRC32计算FCS校验码

    1.CRC.FCS是什么 比奇小说网 https://m.biqi.org/ CRC,全称Cyclic Redundancy Check,中文名称为循环冗余校验,是一种根据网络数据包或计算机文件等数据 ...

  3. Android CRC16计算产生校验码

    好久没有更新啦,最近做了一个关于CRC16校验的项目,把这个方法分享给大家,代码如下: /**      * CRC16计算产生校验码      *      * @param data 需要校验的数 ...

  4. PHP CRC16 校验码的算法怎么使用

    PHP CRC16 校验码的算法如何使用 最近用到CRC16, 我现在就是要把 010301180001 算出CRC16的校验码,通过其他工具,可以得到 校验码是 05F1 最后完整的代码就是 010 ...

  5. python crc-16 crc-16校验码 crc-16校验算法 ppp(MAC)帧检验序列FCS

    python crc-16 crc-16校验码 crc-16校验算法 ppp(MAC)帧检验序列FCS 想弄明白这里要看多几遍,配合下面的例子能更快理解. 第一.CRC-16校验码计算方法: 常用查表 ...

  6. Java实现CRC16校验算法

    本文主要记录java版的crc校验算法,顺带贴上c的crc校验函数 先上c的校验函数,本文java版的校验就是根据此函数而来的,希望能帮到大家 当时开发时通过一个在线检验工具辅助开发的.工具链接戳我 ...

  7. 十六进制数据的CRC16校验码自写软件

    关于十六进制数据的CRC16校验码自写软件安装包 十六进制数据的CRC16校验码(0XA001)自写软件 链接与图片 全部代码 十六进制数据的CRC16校验码(0XA001)自写软件 这里分享一个自己 ...

  8. JAVA实现CRC16校验

    一.校验码 CRC16占用两个字节,包含了一个 16 位的二进制值.CRC 值由传输设备计算出来,然后附加到数据帧上,接收设备在接收数据时重新计算 CRC 值,然后与接收到的 CRC 域中的值进行比较 ...

  9. 得到CRC16校验码的常见几个标准的算法及C语言实现

    CRC16常见的标准有以下几种,被用在各个规范中,其算法原理基本一致,就是在数据的输入和输出有所差异,下边把这些标准的差异列出,并给出C语言的算法实现. CRC16_CCITT:多项式x16+x12+ ...

最新文章

  1. 10任务栏全屏时老是弹出_Deepin 15.10 发布,深度操作系统
  2. 特斯拉“国王”王权不保
  3. 研发团队来了高颜值的妹子,这结局万万没想到 | 每日趣闻
  4. 一些算法入门应该明白的东西
  5. linux测试nvme性能,使用Python测试NVMe吞吐量
  6. Magento教程 8:如何新增首页选单?
  7. JavaScript判断浏览器 Browser detect
  8. 22. C# -- 抽象类和接口
  9. mysql 锁设置密码_[转载]mysql锁小结
  10. 机器学习笔记-XGBoost
  11. Lecture 7:策略梯度
  12. nodejs下载 安装 配置环境
  13. Photoshop:渐变工具的使用
  14. 今日开放式基金净值表
  15. 演示笔记本重装系统win10教程,笔记本电脑安装win10系统
  16. LeetCode第9题 回文数(Palindrome Number)
  17. 多因子选选股MATLAB代码,MatlabCode 多因子模型构建。多因子模型是量化选股中最重要的一类模型 联合开发网 - pudn.com...
  18. 数据标准是什么?企业如何做好数据管理?
  19. java全栈系列之JavaSE-编写银行基金收益系统031
  20. kerberos 部署

热门文章

  1. 莫比乌斯函数、莫比乌斯反演
  2. 无人机测绘整体流程-外业
  3. 为什么感觉身边的人很冷漠?
  4. 跟着《软帝学院》,编写的一个(水果机)小游戏
  5. 设计了一个支撑 数亿 用户的系统
  6. 阔别7年,故地重游---崇明岛
  7. Session攻击(会话劫持+固定)与防御
  8. FS5080E ESOP8 原厂1A电流5V升压双节锂电池开关充电IC
  9. APP的流量测试(android和iOS的流量测试)
  10. oracle12c EM的配置和使用