Delphi CRC算法crcexecute】的更多相关文章

function crcexecute(pcstring : string) : string ; forward; var  gnkey  : integer;  gnsalt : integer; {------------------------------------------------------------------------------}implementation const  null_string  = ''; const crctable : array [0..2…
http://www.cnblogs.com/tangqs/archive/2011/12/08/2280255.html…
一.CRC算法原理   CRC校验的基本思想是利用线性编码理论,在发送端根据要传送的k位二进制码序列,以一定的规则产生一个校 验用的监督码(既CRC码)r位,并附在信息后边,构成一个新的二进制码序列数共(k+r)位,最后发送出去.在接收端,则根据信息码和CRC码之间所遵循的规则进行检验,以确定传送中是否出错. 16位的CRC码产生的规则是先将要发送的二进制序列数左移16位(既乘以 )后,再除以一个多项式,最后所得到的余数既是CRC码. 假设数据传输过程中需要发送15位的二进制信息 g=10100…
Cyclic Redundancy Check循环冗余检验,是基于数据计算一组效验码,用于核对数据传输过程中是否被更改或传输错误. 算法原理 假设数据传输过程中需要发送15位的二进制信息g=101001110100001,这串二进制码可表示为代数多项式g(x) = x^14 + x^12 + x^9 + x^8 + x^7 + x^5 + 1,其中g中第k位的值,对应g(x)中x^k的系数.将g(x)乘以x^m,既将g后加m个0,然后除以m阶多项式h(x),得到的(m-1)阶余项r(x)对应的二…
!!版权声明:本文为博主原创文章,版权归原文作者和博客园共有,谢绝任何形式的 转载!! 作者:mohist 我使用的OS:win7. 我使用的开发环境:VS2010 + sp1 算法源码: 1 unsigned int create_crc_2(unsigned char *parr, unsigned int parr_len) 2 { 3 unsigned char *pbuf = NULL; 4 5 // 数据长度为奇数,在数据前补0 6 if (1 == parr_len % 2) 7…
function CalCRC16(AData: array of Byte; AStart, AEnd: Integer): string;const  GENP=$8408;  //多项式公式X16+X15+X2+1(1100 0000 0000 0101)  //$A001var  crc:Word;  i:Integer;  tmp:Byte;  s:string;procedure CalOneByte(AByte:Byte);  //计算1个字节的校验码varj:Integer;be…
CRC校验原理 CRC校验其根本思想a.发送端和接收端约定一个整数 bb.发送端在原始数据帧后面附加一个数 k ,产生一个新的数据帧c.接收端接收到数据帧后,对接收的数据帧和整数 b 进行位异或操作,如果异或的结果是 0 ,表明数据完整,否则数据丢失 关键点1:整数 b 的选择整数 b 随机选择,也可按国际上通行的标准选择,但最高位和最低位必须均为“1”,如在IBM的SDLC(同步数据链路控制)规程中使用的CRC-16(也就是这个除数一共是17位)生成多项式g(x)= x^16 + x^15 +…
计算机中的符号数有三种表示方法,即原码.反码和补码.三种表示方法均有符号位和数值位两部分,符号位都是用0表示"正",用1表示"负". 正数的原码,反码,补码都是相同的:负数原码转化为反码:符号位不变,数值位按位取反:负数原码转化为补码:符号位不变,数值位按位取反,末尾加一. 但是python不像C语言有无符号类型,python中一个整数x按位取反后,最高位的符号位:正负交换了,即正数变为负数,负数变为正数了.要实现单纯的按位取反,而不带符号, 可以通过与一个全1的数…
#define CRC_16_POLYNOMIALS 0x8005 unsigned short CRC16_3(unsigned char* pchMsg, unsigned short wDataLen) // 1. MSB first; 2. Initial value is 0000; { unsigned char i, chChar; unsigned ; while (wDataLen--) { chChar = *pchMsg++; wCRC ^= (((unsigned );…
https://blog.csdn.net/dream_1996/article/details/73588269…