CRC16校验代码
2012-06-15 10:00
363 查看
function CRC16(Data: string): string; var I, Len, CRC: Word; pData: PChar; begin CRC := 0; Len := Length(Data); pData := PChar(Data); while Len > 0 do begin CRC := CRC xor (Word(pData^) shl 8); Inc(pData); I := 8; repeat if CRC and $8000 > 0 then CRC := (CRC shl 1) xor $1021 else CRC := CRC shl 1; Dec(I); until I = 0; Dec(Len); end; Result := IntToHex(CRC, 4); end;
/***************************************************************************************** Function: CalcCRC Description: 计算CRC Calls: 无 Called By: 无 Input: 数据串指针pui16_Data,数据长度ui16_lenth Output: 无 Return: 16位CRC Others: 无 Auther: Time: 2005-7-8 *****************************************************************************************/ UI16 CalcCRC(UI8 *pui16_Data, UI16 ui16_lenth) { UI8 i; UI16 crc=0; UI16 lenth; lenth=ui16_lenth; while(lenth) { crc = crc ^ ((UI16)(*pui16_Data++) << 8); i=8; do { if (crc & 0x8000) { crc = (crc << 1) ^ 0x1021; } else { crc <<= 1; } } while(--i); lenth--; } return (crc); }
相关文章推荐
- CRC原理详解(附crc16校验代码)
- CRC16校验程序
- CRC代码实现
- CRC查找表法推导及代码实现比较
- CRC-16校验 完整代码
- CRC16校验程序
- CRC-16校验 完整代码
- CRC测试代码
- java之crc16测试代码
- CRC代码算法实现-CRC-16 MODBUS代码实验
- CRC16校验使用体验
- CRC16校验的c语言实现
- CRC-32校验和CRC-32校验代码
- C#和C实现通过CRC-16 (Modbus)获取CRC值并校验数据(代码)
- CRC-16/CRC-32 程序代码
- CRC16校验
- 请解释一下CRC是什么意思?并说明其应用场合?根据下面的描述完成CRC16的C代码。
- CRC16校验
- CRC算法之二:具体实现代码
- CRC16校验的学习