大侠,不得已请教大家,我实在是搞不出来了。查了很多网站一直没算出这个一组数据的CRC算法。ff ff fd ff ff 10 01 08 d3 0b 3c 05 a6 00 00 00 0a 00 04 00 08 00 09 ae 8a
ff ff fd ff ff 10 01 08 ce 0b 61 05 6b 00 00 00 0a 00 05 00 08 00 0a 40 a9
ff ff fd ff ff 10 01 08 f0 0b 71 06 0a 00 00 00 0a 00 05 00 08 00 09 08 b3
ff ff fd ff ff 10 01 08 c5 0b 69 05 7f 00 00 00 0a 00 05 00 09 00 09 f9 eb这里有4组数据,前23个数是传输的数据,后两位是CRC校验码。请问,这个可以反推出CRC算法么?谢谢了。
ff ff fd ff ff 10 01 08 ce 0b 61 05 6b 00 00 00 0a 00 05 00 08 00 0a 40 a9
ff ff fd ff ff 10 01 08 f0 0b 71 06 0a 00 00 00 0a 00 05 00 08 00 09 08 b3
ff ff fd ff ff 10 01 08 c5 0b 69 05 7f 00 00 00 0a 00 05 00 09 00 09 f9 eb这里有4组数据,前23个数是传输的数据,后两位是CRC校验码。请问,这个可以反推出CRC算法么?谢谢了。
谢谢你,这个多少组数据我都可以提供,只要能反推出来就好了,老外的设备发的数据,应该用的是标准的CRC吧
//我用的一个crc,供参考!
function TCommunicationProtocol.CRC16(buf: array of Byte;len: Integer): Word;
var
i,j: Integer;
chr: Word;
begin
Result := $ffff; for j:=0 to len - 1 do begin
chr := buf[j] and $ff;
Result := Result xor chr;
for i:=0 to 8 -1 do begin
if ((Result and 01) <> 0) then
Result := (Result shr 1) xor $a001
else
Result := Result shr 1;
end;
Result := Result and $ffff;
end;
Result := Result shr 8 + (Result and $FF shl 8)
end;