clwn.net
当前位置:首页 >> jAvA 实现CrC16校验算法的问题 >>

jAvA 实现CrC16校验算法的问题

实现方法:最简单的校验就是把原始数据和待比较数据直接进行比较,看是否完全一样这种方法是最安全最准确的。同时也是效率最低的。 应用例子:龙珠cpu在线调试工具bbug.exe。它和龙珠cpu间通讯时,bbug发送一个字节cpu返回收到的字节,bbug确认...

public static int CRC16(byte[] Buf, int Len) { int CRC; int i, Temp; CRC = 0xffff; for (i = 0; i < Len; i++) { CRC = CRC ^ byteToInteger(Buf[i]); // System.out.println(byteToInteger(Buf[i])); for (Temp = 0; Temp < 8; Temp++) { ...

unsigned short 都替换为int unsigned int 也替换为int unsigned char const *buf替换为byte[] buf *buf++替换为buf[i]

CRC校验码的基本思想是利用线性编码理论,在发送端根据要传送的k位二进制码序列,以一定的规则产生一个校验用的监督码(既CRC码)r位,并附在信息后边,构成一个新的二进制码序列数共(k+r)位,最后发送出去。在接收端,则根据信息码和CRC码之间...

b是需要检验的数据。getvalue是8位校验码,string类型。看api只有快 是帧封装802.3么?

/*http://www.koders.com/java/fid1EAF386550BCF07C458CEE6FD966D257A3337235.aspx?s=Address#L34 *--------------------------------------------------------------------------- * Copyright (C) 1999,2000 Dallas Semiconductor Corporation...

这是16位CRC校验吧,这里的寄存器是用来放校验值的,可以如下定义: int crc = 0xFFFF;

short CityComGetCRC(final byte[] data,short length){ short crc=0,q; short c,i; for(i=0;i>4)^(q*0x1081); q=(crc^(c>>4))&0xf0; crc=(crc>>4)^(q*0x1081); } return crc;}

b是需要检验的数据。getvalue是8位校验码,string类型。看api只有快是帧封装802.3么?

校验的双方是自己算出来的数和发布方公布的数做对比。 你需要预先知道“发布方发布的效验码”或者“可能发生错误之前(比如传输之前)自己计算的效验码” 然后 if(crc.getValue()==official_crc){ //一致,数据完整 }else{ //不一致,数据不完整 }

网站首页 | 网站地图
All rights reserved Powered by www.clwn.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com