1,输入一串字符。
2,返回该字符串的CRC16校验码
3,CRC16校验码的产生是通过“查表法”获得。
private static String mkCrc16(String str) {
CRC16 crc16 = new CRC16();
byte[] b = str.getBytes();
for (int i = 0; i < b.length; i++)
crc16.update(b[i]);
return Integer.toHexString(crc16.value);
}
private static String mkCrc(String string) throws Exception {
CRC32 crc32 = new CRC32();
crc32.update(string.getBytes());
return Long.toHexString(crc32.getValue());
}
public class CRCUtil {
public static final int evalCRC16(byte[] data) {
int crc = 0xFFFF;
for (int i = 0; i < data.length; i++) {
crc = (data[i] <<
^ crc;
for (int j = 0; j < 8; ++j)
if ((crc & 0x8000) != 0)
crc = (crc << 1) ^ 0x1021;
else
crc <<= 1;
}
return (crc ^ 0xFFFF) & 0xFFFF;
}
}
分享到:
相关推荐
1. `int calculateCRC16(byte[] data)`:此方法接收一个字节数组作为输入,对这些字节进行CRC16计算,并返回16位的CRC校验和。 2. `boolean verifyCRC16(byte[] originalData, byte[] receivedData)`:此方法用于...
ModBus通讯,CRC校验码生成,Java版实现;ModBus,CRC,Java版实现
从数据头到校验码前的CRC16-CCITT的校验值,遵循大端排序方式的规定。CRC16-CCITT码生成多项式为x16+x12+x5+1,简记式1021。
CRC16校验算法及十六进制和十六进制字符串转换
余数作为CRC校验码附加到原始数据后面,接收方同样使用该生成多项式对整个数据(包括原始数据和CRC校验码)进行除法运算,若余数为零,则认为数据传输无误。 **CRC16计算步骤** 1. 将原始数据看作高次位在前的二...
一款CRC16的校验码生成工具,可以自己设置校验码生成多项式,可以对十六进制序列和文件进行校验,得出16位CRC校验码。字符串需要输入ASCii码形式,例如:AE 13 4F 78 0C 90 A0 B1,每两个中间要加空格,当校验多项式...
它特别指出与“串口助手”配合良好,这表明CRC16校验码计算器可能集成了一些串行通信的功能,如接收和发送带有CRC校验的数据包,从而帮助用户在调试或测试串口通信时验证数据的正确性。 当遇到无法运行的问题时,...
运算过程中产生的余数就是CRC校验码。这个过程可以转换成移位寄存器和逻辑门的操作,从而实现硬件或软件的高效实现。 在描述中提到的“通道码”是需要进行CRC校验的数据,以十六进制表示并用空格分隔。例如,“68 ...
java ModBus CRC 16 校验_(亲测成功) 还有一个在线版本的 https://www.lammertbies.nl/comm/info/crc-calculation.html
它的基本原理是将待校验的数据视为一个二进制多项式,然后用一个预定义的生成多项式进行除法运算,得到的余数即为CRC校验码。在接收端,接收到的数据与接收方存储的生成多项式再次进行除法运算,如果余数为零,则...
CRC16 MODBUS校验算法实现涉及到对数据进行特定的计算,以产生一个16位的校验码,这个校验码可以用于检查数据是否在传输过程中发生了错误。 1. CRC16原理 CRC16的核心在于一个称为生成多项式(Generator Polynomial...
在上面的代码中,我们使用了CRC16校验算法来生成一个十六进制的校验码,然后将其附加到数据的末尾,并将其发送到串口中。在接收端,我们可以使用CRC16校验算法来检测数据传输中的错误。 结论 在本文中,我们介绍了...
- 用CRC生成多项式对数据进行模2除法,每次除法操作相当于对数据的每一位进行异或操作,如果结果的最高位为1,则将生成多项式的低n位(n为CRC校验码的位数)与数据的下一位异或,如果最高位为0,则不做任何操作。...
5. 最终结果:经过上述步骤后,寄存器中的值即为CRC校验码。为了方便比较,通常将其取反(即进行1's Complement操作)。 在Java中实现CRC16,可以创建一个CRC16类,包含一个计算CRC16的方法。CRC16.java文件可能...
crc校验,输入一个数组,返回一个数组,返回的数组比原数组 多了两个字节,也就是两个校验码,低字节在前,高字节在后.
接收端收到数据后,同样使用相同的算法计算接收到的数据的CRC校验值,并与接收到的CRC值进行比较,以此判断数据是否在传输过程中发生了错误。 #### CRC码的关键组成部分 1. **多项式**:CRC算法的基础是基于二进制...
因此,描述中提到的代码应该是一个可以直接在Eclipse中编译运行的Java类或函数,用于计算CRC校验码。 在实际应用中,你可以将这个CRC校验功能封装成一个静态方法,接受字节数组或文件路径作为输入,返回CRC校验码。...
标准的CCITT校验,CRC16位码,很准确,网上找的好多都不靠谱,这个是经过多伦测试出的结果,和C通信校验完全一致
Java Crc16校验码
这个16进制字符串就是数据的CRC16校验码,可以被用于数据接收端的校验过程。 利用PB语言实现MODBUS协议的CRC16校验算法,对于数据传输的可靠性和完整性具有重要意义。在工业自动化和控制系统中,数据往往是控制指令...