张志峰的博客

水滴石川,积少成多。

导航

随笔分类 -  Delphi CRC校验函数

摘要:其对应校验二进制位列为1 1000 0000 0000 0101,可这有17位啊,我怎么和16位信息进行异或啊?是不是不要最高位的1 你没有弄明白crc的意思.这17位后面再添上16个零,然后开始抑或运算.共33位.从前到后运算,一位一位来:当这一位数值是1的时候就取这一位开始往后的16位与校验多项 阅读全文

posted @ 2016-06-14 10:31 ╰★张志峰★╮ 阅读(5370) 评论(0) 推荐(0)

摘要:http://www.cnblogs.com/tangqs/archive/2011/12/08/2280255.html 阅读全文

posted @ 2016-06-12 15:28 ╰★张志峰★╮ 阅读(564) 评论(0) 推荐(0)

摘要:function CheckCrc16(const ABuf; ALen: Integer): Boolean;var uwTemp: WORD; i, j: BYTE; P: PByte;begin Result := False; P := PByte(@ABuf); uwTemp := $FF 阅读全文

posted @ 2016-06-12 15:23 ╰★张志峰★╮ 阅读(1291) 评论(0) 推荐(0)

摘要:在工业控制中,Modbus RTU CRC16的校验码用的比较广泛,包括本人富士产品中,PC与伺服电机以及PC与VP系列的变频器的Modbus RTU通讯中都使用到了CRC16. 而对CRC16的计算的方式基本上有2种:第一种,使用双循环依照CRC的计算方法进行计算,第二种,采用查表的方式。本人愚钝 阅读全文

posted @ 2016-06-12 15:11 ╰★张志峰★╮ 阅读(2337) 评论(0) 推荐(0)

摘要:function crcexecute(pcstring : string) : string ; forward;var gnkey : integer; gnsalt : integer;{ }implementationconst null_string = '';const crctable 阅读全文

posted @ 2016-06-12 15:07 ╰★张志峰★╮ 阅读(323) 评论(0) 推荐(0)

摘要:unit CRC32Verify;interfaceuses Windows, Messages, SysUtils, Classes, Forms;CONST table: ARRAY[0..255] OF DWORD = ($00000000, $77073096, $EE0E612C, $99 阅读全文

posted @ 2016-06-12 15:06 ╰★张志峰★╮ 阅读(680) 评论(0) 推荐(0)

摘要:循环冗余码校验英文名称为Cyclical Redundancy Check,简称CRC。它是利用除法及余数的原理来作错误侦测(Error Detecting)的。实际应用时,发送装置计算出CRC值并随数据一同发送给接收装置,接收装置对收到的数据重新计算CRC并与收到的CRC相比较,若两个CRC值不同 阅读全文

posted @ 2016-06-12 15:00 ╰★张志峰★╮ 阅读(5379) 评论(0) 推荐(0)

摘要:function CalCRC16(AData: array of Byte; AStart, AEnd: Integer): string;const GENP=$8408; //多项式公式X16+X15+X2+1(1100 0000 0000 0101) //$A001var crc:Word; 阅读全文

posted @ 2016-06-12 14:58 ╰★张志峰★╮ 阅读(2641) 评论(0) 推荐(0)