20分求翻对一下C语言的代码为DELPHI

hong668 2009-03-26 10:17:07
unsigned int FcsTable(unsigned int j)
{
unsigned char i;
for(i=0;i<8;i++)
j=(j&1)?(j>>1)^0x8408:j>>1;
return j;
}
unsigned int Fcs16(unsigned char *cp,unsigned char len){
unsigned int fcs;
fcs=0xffff;
while(len-->0)
fcs=(fcs>>8)^FcsTable((fcs^*cp++)&0xff);
fcs^=0xffff;
return fcs;
}
...全文
163 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
cglzyz 2009-03-30
  • 打赏
  • 举报
回复
对C不太熟,但感觉第一个循环,应该是for i:=0 to 8 啊
捧剑者 2009-03-30
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 cglzyz 的回复:]
对C不太熟,但感觉第一个循环,应该是for i:=0 to 8 啊
[/Quote]
一楼的没错。
TButton 2009-03-26
  • 打赏
  • 举报
回复
hong668 2009-03-26
  • 打赏
  • 举报
回复
这么快啊,我马上试一下
Seamour 2009-03-26
  • 打赏
  • 举报
回复

function FcsTable(j: Cardinal): Cardinal;
var i: Integer;
begin
for i:=0 to 7 do
if Boolean(j and 1)then
j := (j shr 1)xor $8408
else
j := j shr 1;
Result := j;
end;

function Fcs16(cp: PByte; Len: Byte): Cardinal;
var i: Integer;
begin
Result := $ffff;
for i:=1 to Len do
begin
Result := (Result shr 8)xor((Result xor cp^)and $ff);
Inc(cp);
end;
Result := Result xor $ffff;
end;

16,749

社区成员

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

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