package com.fg.water;
public class CRCTest {
/**
* @param args
*/
public static void main(String[] args) {
String temp = "ST=32;CN=2011;PW=122333;MN=88888880000005;CP=&&DataTime=20120416225856;060-Rtd=0.06,060-Flag=N;011-Rtd=0.00,011-Flag=N;001-Rtd=7.64,001-Flag=N&&";
// ##0077QN=20120416225111069;ST=91;CN=9021;PW=122333;MN=88888880000006;Flag=1;CP=&&&&4100
// ##0144ST=32;CN=2011;PW=122333;MN=88888880000005;CP=&&DataTime=20120416225856;060-Rtd=0.06,060-Flag=N;011-Rtd=0.00,011-Flag=N;001-Rtd=7.64,001-Flag=N&&3AC0
Integer[] regs = new Integer[temp.length()];
for (int i = 0; i < temp.length(); i++) {
regs[i] = (int) temp.charAt(i);
}
int por = 0xFFFF;
for (int j = 0; j < regs.length; j++) {
por = por >> 8;
por ^= regs[j];
for (int i = 0; i < 8; i++) {
if ((por & 0x01) == 1) {
por = por >> 1;
por = por ^ 0xa001;
} else
por = por >> 1;
}
}
System.out.println(Integer.toHexString(por));
}
}
分享到:
相关推荐
CRC(Cyclic Redundancy Check,循环冗余校验)是一种广泛用于数据传输错误...在Java中实现CRC16,可以参考提供的`CRC16.java`源代码,或者利用CRC库如CRCjy-v1.1.zip中的资源,以便更高效地在项目中应用CRC16校验。
`CharterConverter.java`可能包含将字符数据转换为字节数组以及将CRC16校验和转化为可读字符串的方法,以便于输出和展示。 实现CRC16校验时,通常会遵循以下步骤: 1. 初始化CRC寄存器:设置为生成多项式的最高位...
CRC16循环冗余算法,高位在前和低位在后都有;...对特定字符串进行转换成16进制字符串,然后将字符串进行CRC16校验,得到校验码. 次工具类已经经过本人亲自验证,完全符合标准,目前项目中用到的就是这个工具类.
CRC(Cyclic Redundancy Check,循环冗余校验)是一种广泛用于数据传输错误检测的校验码技术,尤其在通信和存储系统中。MODBUS协议是工业设备间通信的一种标准,它使用CRC16来确保数据在传输过程中的完整性。CRC16 ...
java ModBus CRC 16 校验_(亲测成功) 还有一个在线版本的 https://www.lammertbies.nl/comm/info/crc-calculation.html
CRC16校验算法及十六进制和十六进制字符串转换
MODBUS CRC16校验计算器.exe
标准的CCITT校验,CRC16位码,很准确,网上找的好多都不靠谱,这个是经过多伦测试出的结果,和C通信校验完全一致
本文将深入探讨在C++环境中,特别是使用Microsoft Foundation Classes (MFC) 框架时,如何进行数制转换以及如何实现CRC16和异或校验。 数制转换是编程中的基础操作,它涉及到不同数值系统间的数值表示转换。在C++中...
在本案例中,提供的“CRC16校验码计算工具及源代码”是一个基于VC2019开发的解决方案,能够帮助用户计算十六进制数据的CRC16值。 CRC16的工作原理基于多项式除法,它将数据看作一个二进制数,然后用一个预定义的CRC...
CRC16(Cyclic Redundancy Check,循环冗余校验)是一种广泛应用于数据通信和存储领域的错误检测机制。它的主要功能是确保数据在传输或存储过程中没有发生错误,通过计算一个简短的校验码并与接收端计算的校验码进行...
代码是QT 下的 CRC16(Modbus)校验类,拿过去直接调用类中函数即可(注意命名空间),crc16(...):...crcCalculation(...):将字符串传入该函数,自动计算出crc校验码并且添加到报文之后,返回携带crc校验码的新报文。
CRC32(Cyclic Redundancy Check,循环冗余校验)是一种广泛应用于数据通信和存储领域的错误检测方法。在C#编程环境中,CRC32校验通常用于确保数据在传输或存储过程中没有发生错误。这个压缩包"crc_32_c.rar"包含了...
CRC16(Modbus)校验类,QT实现,直接调用类中函数即可(注意命名空间),三个函数表示,1)crc16(....3)crcCalculation(...):将字符串传入该函数,自动计算出crc校验码并且添加到报文之后,返回携带crc校验码的新报文。
在Java中实现CRC校验,可以采用自定义算法的方式,如上文给出的`CRC16Checker`类所示。下面,我们将深入解析这个类中的关键方法。 1. **`getBinary(String text)`** 方法:此方法用于将输入的字符串转换成二进制...
从数据头到校验码前的CRC16-CCITT的校验值,遵循大端排序方式的规定。CRC16-CCITT码生成多项式为x16+x12+x5+1,简记式1021。
总的来说,这个CRC16查表法校验与计算源代码提供了高效且可靠的CRC16计算功能,对于理解CRC原理和实现,以及在实际项目中使用CRC进行数据校验,都具有很高的参考价值。开发者可以根据提供的源代码学习如何实现查表法...
嵌入式MCGS串口通信快速入门及编程实例_第10章_Modbus通信之CRC校验_CRC计算.pdf嵌入式MCGS串口通信快速入门及编程实例_第10章_Modbus通信之CRC校验_CRC计算.pdf嵌入式MCGS串口通信快速入门及编程实例_第10章_Modbus...