-段C语言代码转delphi代码

tonyzhang980 2012-07-11 12:13:58
unsigned int crc(char *s,int len)
{
unsigned int acc = 0,i;
while (len--)
{
acc = acc ^ (*s++ << 8);
for (i=0; i++ < 8;)
{
if (acc & 0x8000)
{
acc = (acc << 1) ^ 0x7301;
}
else
{
acc <<= 1;
}
}
}
return (acc);
}
...全文
144 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
bdmh 2012-07-11
  • 打赏
  • 举报
回复
unsigned int Cardinal
char* Pchar
^ xor
<< shl
>> shr

*s++ pchar也是指针,也可以进行加减
lqfcu2 2012-07-11
  • 打赏
  • 举报
回复
function crc(s: PChar; len: Integer): DWORD;
var
acc, i: DWORD;
begin
acc := 0;
while(len > 0) do
begin
acc := acc xor (Ord(s^) shl 8);
Inc(s);
for i := 0 to 7 do
begin
if Boolean(acc AND $8000) then
acc := (acc shl 1) xor $7301
else
acc := acc shl 1;
end;
Dec(len);
end;
Result := acc;
end;

没试过,不知道结果对不对~

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧