码迷,mamicode.com
首页 > Windows程序 > 详细

CRC-CCITT (0xFFFF) delphi实现

时间:2017-07-27 17:02:26      阅读:371      评论:0      收藏:0      [点我收藏+]

标签:下载   字符   nload   xor   bsp   result   delphi   resid   结果   

由于要和java的服务沟通,最终确定要实现的是:

width=16

poly=0x1021

init=0xffff

refin=false

refout=false

xorout=0x0000

check=0x29b1

residue=0x0000

name="CRC-16/CCITT-FALSE"

 

网络找了很多,结果结果对不上

下载了工具,都不是想要的,最终找到校验在线网址:

 

https://www.lammertbies.nl/comm/info/crc-calculation.html

 

 

实现代码:

function CRC16_CCITT_0xFFFF(bytes: TBytes): Word;
const
polynomial = $1021;
var
crc: Word;
I, J: Integer;
b: Byte;
bit, c15: Boolean;
begin
crc := $FFFF; // initial value
for I := 0 to High(bytes) do
begin
b := bytes[I];
for J := 0 to 7 do
begin
bit := (((b shr (7-J)) and 1) = 1);
c15 := (((crc shr 15) and 1) = 1);
crc := crc shl 1;
if (c15 xor bit) then crc := crc xor polynomial;
end;
end;

Result := crc and $ffff;
end;

 

当然如果字符串过长,则需要查表法实现,

https://www.libcrc.org/download/

给了c的实现。

CRC-CCITT (0xFFFF) delphi实现

标签:下载   字符   nload   xor   bsp   result   delphi   resid   结果   

原文地址:http://www.cnblogs.com/yf142857/p/7245758.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!