CRC16算法之三:CRC16-CCITT-MODBUS算法的java实现
2018-02-12 20:49
881 查看
CRC16算法系列文章:
支持int、short类型
支持选择数组区域计算
---end---
CRC16算法之一:CRC16-CCITT-FALSE算法的java实现
CRC16算法之二:CRC16-CCITT-XMODEM算法的java实现
CRC16算法之三:CRC16-CCITT-MODBUS算法的java实现
功能
实现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); }
---end---
相关文章推荐
- CRC16算法之一:CRC16-CCITT-FALSE算法的java实现
- CRC16算法之二:CRC16-CCITT-XMODEM算法的java实现
- CRC代码算法实现-CRC-16 MODBUS代码实验
- crc16 ccitt 单片机与java匹配算法
- JAVA编程心得-JAVA实现CRC-CCITT(XMODEM)算法
- java实现CRC16算法与C算法一致
- CRC16 三种算法及c实现
- CRC-16算法实现(转)
- CRC16常见几个标准的算法及C语言实现
- C#和C实现通过CRC-16 (Modbus)获取CRC值并校验数据(代码)
- 用Perl语言实现CRC-16算法和应用
- CCITT CRC-16计算原理与实现
- Java实现循环冗余码(CRC)生成算法
- CRC16常见几个标准的算法及C语言实现
- CRC_16 原理及其C语言算法实现
- CRC16常见几个标准的算法及C语言实现
- CRC-16算法的C语言实现(图文)
- JAVA编程心得-JAVA实现CRC-CCITT(XMODEM)算法
- 【算法集中营】CRC16 三种算法及c实现
- CRC16 三种算法及c实现