CRC16算法之三:CRC16-CCITT-MODBUS算法的java实现
CRC16算法系列文章:
功能
实现CRC16-CCITT-MODBUS算法
支持int、short类型
支持选择数组区域计算
实现
- /**
- * crc16_ccitt_modbus算法(四字节)友情提示:做好自己!--eguid博客地址:http://blog.csdn.net/eguid_1
- * @param buf
- * @param offset
- * @param length
- * @return
- */
- public static int crc16_ccitt_modbus(byte[] buf,int offset, int length) {
- int i, j;
- int c, crc = 0xFFFF;
- for (i = offset; i < length; i++) {
- c = buf[i] & 0x00FF;
- crc ^= c;
- for (j = 0; j < 8; j++) {
- if ((crc & 0x0001) != 0) {
- crc >>= 1;
- crc ^= 0xA001;
- } else
- crc >>= 1;
- }
- }
- return crc;
- }
- /**
- * crc16_ccitt_modbus算法(四字节)
- * @param buf
- * @return
- */
- public static int crc16_ccitt_modbus(byte[] buf) {
- return crc16_ccitt_modbus(buf,0,buf.length);
- }
- /**
- * crc16_ccitt_modbus算法(两字节)
- * @param buf
- * @param offset
- * @param length
- * @return
- */
- public static int crc16_ccitt_modbus_short(byte[] buf,int offset, int length) {
- return (short)crc16_ccitt_modbus(buf,offset,length);
- }
- /**
- * crc16_ccitt_modbus算法(两字节)
- * @param buf
- * @return
- */
- public static int crc16_ccitt_modbus_short(byte[] buf) {
- return (short)crc16_ccitt_modbus(buf,0,buf.length);
- }
转载于:https://www.cnblogs.com/eguid/p/9667144.html
CRC16算法之三:CRC16-CCITT-MODBUS算法的java实现相关推荐
- 三种CRC16 C语言算法理解(CCITT)
三种CRC16的算法实现,结合自己的理解记录一下: 一.先说算法的C语言实现和各算法的优缺点: 1.按位计算CRC 代码如下 uint16_t crc_16(uint8_t *data, uint16 ...
- C++与JAVA代码实现CRC-16/MODBUS算法,且与 http://www.ip33.com/crc.html 进行结果验证
CRC-16/MODBUS的多项式为:x16+x15+x2+1(8005),宽度为16.运算时,首先将一个16位的寄存器预置为11111111 11111111,然后连续把数据帧中的每个字节中的8位与 ...
- crc16检验 python_Python CRC16校验算法
def crc16(x, invert): a = 0xFFFF b = 0xA001 for byte in x: a ^= ord(byte) for i in range(8): last = ...
- python crc-16 crc-16校验码 crc-16校验算法 ppp(MAC)帧检验序列FCS
python crc-16 crc-16校验码 crc-16校验算法 ppp(MAC)帧检验序列FCS 想弄明白这里要看多几遍,配合下面的例子能更快理解. 第一.CRC-16校验码计算方法: 常用查表 ...
- 最大流算法之三:ISAP
最大流算法之三:ISAP <转> (2009-08-14 19:24:27) 转载▼ 标签: it 分类: 理论 通常的 SAP 类算法在寻找增广路时总要先进行 BFS,BFS 的最坏情况 ...
- 五大常用算法之三:贪心算法
一.基本概念: 所谓贪心算法是指,在对问题求解时,总是做出在当前看来是最好的选择.也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解. 贪心算法没有固定的算法框架,算法设计的关键 ...
- 五大算法之三--贪心算法
一.基本概念: 所谓贪心算法是指,在对问题求解时,总是做出在当前看来是最好的选择.也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解. 贪心算法没有固定的 ...
- 【JVM进阶之路】垃圾回收机制和GC算法之三色标记(三)
JVM往期文章 [JVM进阶之路]内存结构(一) [JVM进阶之路]玩转JVM中的对象(二) 上篇文章中讲到JVM中的对象以及判断对象的存活,那么对于"已死"的对象应该如何处理,怎 ...
- 深入理解JVM之三:垃圾回收算法
原文:http://blog.csdn.net/dd864140130/article/details/50084471 1. 标记--清除算法(Mark-Sweep) 标记--清除算法是第一种使用和 ...
最新文章
- java代码段替换,java-片段添加或替换不起作用
- java属于高级语言_以下哪种语言属于高级语言________________。A、JavaB、C++C、VisualBa...
- pyc文件反编译为py文件
- python web框架django_Python Web应用框架 Django
- go和java线程,Go的多线程和pthread或Java线程有什么区别?
- 怎么将arcgis新建工具条如何保存_ArcGIS中寻找最短路径的方法
- 获取手机信息(UIDevice、NSBundle、NSLocale)
- centos7根据端口查进程_记录一次CentOs7下Nginx+WSGI部署Django项目(超详细)
- idea重写接口没有@override_乐字节|Java8核心实战-接口默认方法
- Atitit.js javascript异常处理机制与java异常的转换 多重catc hDWR 环境 .js exception process Vob7
- c语言的程序的基本示例
- Scratch3.0安装教程
- 牛顿法与拟牛顿法求解比较
- Cluster - 基本概念
- Quartz定时任务自学
- 【HTML+CSS之小米商城页面图】
- 2021 TWeb 腾讯前端技术大会精彩回顾(附PPT)
- 五面阿里拿下飞猪事业部offer,统统给你解决!
- windows 安装metis_图划分软件Metis的使用(win10+vs2017)
- 2021软件评测师真题