CRC C语言转换成delphi 哪出问题了(200分)

  • 主题发起人 chenxing516
  • 开始时间
C

chenxing516

Unregistered / Unconfirmed
GUEST, unregistred user!
int calcrc(char *ptr, unsigned char count) //计算CRC
{
int crc = 0;
char i,j;

for(j=0;j<count;j++)
{
crc = crc ^ (int) *ptr++ << 8;
i = 8;
do
{
if (crc &amp;
0x8000)crc = crc << 1 ^ 0x1021;
else
crc = crc << 1;
} while(--i);
}
return (crc);
}
转换后的
function calcrc(checkstring:string):string;
var
i,j:integer;
s:string;
crc:word;
begin
crc:=0;
s:= checkstring;
for i:=1 to length(s)do
begin
crc:=crc xor ord(s) shl 8 ;
for j:=0 to 7do
begin
if (crc and $8000)=1 then
begin
crc:=crc shl 1 xor $1021;
end
else
crc:=crc shl 1;
end;
end;
result :=inttostr(crc);
end;
不知道哪有问题 如果c的输入的是0123456789的话 在delphi中求得的值不一样
 
C

chenxing516

Unregistered / Unconfirmed
GUEST, unregistred user!
急用,谢谢各位大富翁的参与
 
C

chenxing516

Unregistered / Unconfirmed
GUEST, unregistred user!
function calcrc(checkstring:string):string;
var
i,j:integer;
s:string;
crc:word;
begin
crc:=0;
s:= checkstring;
for i:=1 to length(s)do
begin
crc:=crc xor ord(s) shl 8 ;
for j:=0 to 7do
begin
if (crc and $8000)<>0 then
begin
crc:=crc shl 1 xor $1021;
end
else
crc:=crc shl 1;
end;
end;
result :=format('%0.4X',[crc]);
end;
 
C

chenxing516

Unregistered / Unconfirmed
GUEST, unregistred user!
自己搞定,提前结贴!
 
M

madic

Unregistered / Unconfirmed
GUEST, unregistred user!
你有结帖???
 
C

chenxing516

Unregistered / Unconfirmed
GUEST, unregistred user!
[:D]忘了这事了,全送你了,不会玩,我一下发了两个帖O(∩_∩)O哈哈~
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
701
import
I
I
回复
0
查看
729
import
I
顶部