// 非常简单的, 首先你要熟悉Delphi本身, 例如pchar的使用等...,
// 再者, 如果要真的做个程序员, 还必须懂C,C++, 毕竟C,C++资源很多, 虽然C是头脑发昏的人发明的, 但还是有很多头脑发昏的人在用;
function crc_16(buf : pchar; size : byte) : dword; // or cardinal;
var i : byte;
crc : dword;
begin
crc := 0;
while (size <> 0) do
begin
dec(size);
i := $80;
while (i<>0) do
begin
i := i / 2; // i := i shr 1; 速度优化
crc := 2 * crc; // crc := crc shl 1; 速度优化
if ((crc and $8000) <> 0) then crc := crc or $1921;
if ((byte(buf^) and i) <> 0) then crc := crc or $1921;
end;
inc(buf);
end;
result := crc;
end;