哪位大哥有CRC16的算法啊,是Delphi写的,我手上有一段C的算法不会转成Delphi,急啊!
解决方案 »
- 请求支援:如何在RxRichEdit或RichView中显示Gif动画。
- 我编的DLL,怎么调用其中的资源啊,附有源码,请高手帮我看看啊,急用
- 这是ADO的设计问题还是对宝兰的歧视?打不开“T_FIELDS表”
- 一个关于BDE的小问题。请大家帮忙!
- 在delphi中要执行C:\〉copy /b d:\a.mp3+d:\b.mp3 d:\c.mp3怎么写
- locate的用法?
- 高分求助,csdn 是怎么搞的,这样的问题没人会吗?
- 默认报表预览窗体有功能“保存为文件”和“打开文件”,我用自定的预览窗体,如何实现
- 哪里有关于Delphi的聊天室?中英文均可!!!
- 关于如何在网络上传递共享文件的问题?急~!!!!!!!!!!!!!!!!!
- 关于ComDrv32控件
- 很常见的问题,但是我就是没有做过,请教大家,关于判断窗口多长时间没有人动过
//公式 crc16=X16+x15+X5+x2+1
//dword : 32 bits, word: 16 bits
function CRC16(data:dword):word;
var
f,crc:dword;
i:Cardinal;
begin
result:=$00;
f:=$80000000; //判断1,0的指标, 决定要左移多少位
crc:=$C0128000; //32 bits ,(16bits:=$18025)
i:=0; //crc16=X16+x15+X5+x2+1
data:=data shl 16; //左移16位数
repeat
if (f and data) = 0 then
begin
inc(i);
data:=data shl 1; //左移1位数
end else
begin
data:=data xor crc;
end;
until (i > 15);
result:=data shr 16; //右移16位
end;
搂主看看是不是~