delphi CRC16 CCITT
时间: 2023-09-05 10:06:42 浏览: 86
以下是 Delphi 中计算 CRC16-CCITT 校验码的代码示例:
```delphi
function CalculateCRC16CCITT(const Data: TBytes): Word;
const
CRCPoly = $1021;
var
CRC: Word;
I, J: Integer;
begin
CRC := 0;
for I := 0 to Length(Data) - 1 do
begin
CRC := CRC xor (Word(Data[I]) shl 8);
for J := 0 to 7 do
begin
if (CRC and $8000) > 0 then
CRC := (CRC shl 1) xor CRCPoly
else
CRC := CRC shl 1;
end;
end;
Result := CRC;
end;
```
使用方法:
```delphi
var
Data: TBytes;
CRC: Word;
begin
Data := TEncoding.ASCII.GetBytes('Hello, world!');
CRC := CalculateCRC16CCITT(Data);
ShowMessage(Format('CRC16-CCITT: %X', [CRC])); // 输出 CRC16-CCITT 校验码
end;
```
注意:在使用该函数之前,需要先在程序中定义 `TBytes` 类型。可以通过 `System.SysUtils` 单元中的 `TEncoding` 类进行字节数组和字符串之间的转换。
阅读全文