
正文
crc的java代码 crc代码生成
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
哪位大哥用java写过CRC8校验, 多项式X7 +X6 +X5 +X2 +1,求代码?
代码如下
public static byte CRC8(byte[] buffer)
{
byte crc = 0;
for (int j = 0; j buffer.Length; j++)
{
crc ^= buffer[j];
for (int i = 0; i 8; i++)
{
if ((crc 0x01) != 0)
{
crc = 1;
crc ^= 0x8c;
}
else
{
crc = 1;
}
}
}
return crc;
}
相关问答
Q1: 将C语言版的CRC校验改为java代码写
short CityComGetCRC(final byte[] data,short length){
short crc=0,q;
short c,i;
for(i=0;ilength;i++){
c=data[i];
q=(crc^c)0x0f;
crc=(crc4)^(q*0x1081);
q=(crc^(c4))0xf0;
crc=(crc4)^(q*0x1081);
}
return crc;
}
Q2: JAVA怎么做CRC校验的程序
实现方法:最简单的校验就是把原始数据和待比较数据直接进行比较,看是否完全一样这种方法是最安全最准确的。同时也是效率最低的。
应用例子:龙珠cpu在线调试工具bbug.exe。它和龙珠cpu间通讯时,bbug发送一个字节cpu返回收到的字节,bbug确认是刚才发送字节后才继续发送下一个字节的。 实现方法:在数据存储和传输中,字节中额外增加一个比特位,用来检验错误。校验位可以通过数据位异或计算出来。
应用例子:单片机串口通讯有一模式就是8位数据通讯,另加第9位用于放校验值。
bcc异或校验法(block check character)
实现方法:很多基于串口的通讯都用这种既简单又相当准确的方法。它就是把所有数据都和一个指定的初始值(通常是0)异或一次,最后的结果就是校验值,通常把它附在通讯数据的最后一起发送出去。接收方收到数据后自己也计算一次异或和校验值,如果和收到的校验值一致就说明收到的数据是完整的。
校验值计算的代码类似于:
unsigned uCRC=0;//校验初始值
for(int i=0;iDataLenth;i++) uCRC^=Data[i];
适用范围:适用于大多数要求不高的数据通讯。
应用例子:ic卡接口通讯、很多单片机系统的串口通讯都使用。 (Cyclic Redundancy Check)
实现方法:这是利用除法及余数的原理来进行错误检测的
Q3: java的crc8校验,按指定多项式,求助
以下是我的分析,不知是否正确,你参考下1、首先来看你打java代码:crc=(byte)((crc1)^0x8c);和 crc=(byte)(crc1); 导致这个问题是因为byte的最高位符号位,转换的时候就出错了2、示例代码:package com.test;public class test {public static void main(String[] args) {byte[] ptr = { 1, 1, 1, 1, 1, 1 };byte res = getCrc(ptr);System.out.println();System.out.println((byte)( (1 1) ^ 0x8c ) + ":" +( (1 1) ^ 0x8c ) );}public static byte getCrc(byte[] ptr) {int crc = 0;for (int i = 0; i 1) ^ 0x8c;} else {crc = crc 1;}}}return (byte) crc;}}
关于crc的java代码和crc代码生成的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







