crc校验代码java,crc校验码c语言

CRC16 c转成java问题?

pFrame是一个结构体指针,++ 表示通过指针获取结构体中的每一个元素。

创新互联专注于鹰手营子网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供鹰手营子营销型网站建设,鹰手营子网站制作、鹰手营子网页设计、鹰手营子网站官网定制、重庆小程序开发服务,打造鹰手营子网络公司原创品牌,更为您提供鹰手营子网站排名全网营销落地服务。

哪位大哥用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;

  }

用java编写一个获得CRC校验码的javabean

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] 8) ^ crc;

for (int j = 0; j 8; ++j)

if ((crc 0x8000) != 0)

crc = (crc 1) ^ 0x1021;

else

crc = 1;

}

return (crc ^ 0xFFFF) 0xFFFF;

}

}

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;}}

将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;

}


网页名称:crc校验代码java,crc校验码c语言
标题网址:http://scyanting.com/article/hssiph.html