Zitat von
Blamaster:
@ himitsu
Ich weiß nun schonmal soviel.
A: array[0..2] of byte;
A[0] := 1
A[1] := 2
A[2] := 3
Die Crc8 der 3 Bytes müsste 216 ergeben.
...
Lässt das Rückschlüsse auf das verwendete Polynom zu ?
Aber sicher, das Poly ist $8C. Hier ein Programm für Deinen Fall
Delphi-Quellcode:
program crc8blam;
{$ifdef win32}
{$apptype console}
{$endif}
const
test:
array[0..2]
of byte = (1,2,3);
{---------------------------------------------------------------------------}
function crc8_blamaster(
const b:
array of byte): byte;
{-CRC8 für Blamaster}
const
Poly = $8C;
{Rocksoft parameter:
(poly : $31; // $8C reflected
init : $00;
xorout : $00;
check : $F4;
width : 8;
refin : true;
refout : true;)
}
var
crc: byte;
i,j: integer;
begin
crc := 0;
for i:=low(b)
to high(b)
do begin
crc := crc
xor b[i];
for j:=1
to 8
do begin
if odd(crc)
then crc := (crc
shr 1)
xor Poly
else crc := crc
shr 1;
end;
end;
crc8_blamaster := crc;
end;
begin
writeln('
Test:',crc8_blamaster(test));
end.
Kannst Du mit beliebigem array of byte aufrufen. Info zum Rocksoftmodel auf meiner
CRC-Seite
Ausgabe des Programms:
Code:
D:\BP_WE\WORK\CRC_HASH>D:\DMX\M10\DCC32 -b crc8blam.pas
Borland Delphi for
Win32 compiler version 18.0
Copyright (c) 1983,2005 Borland Software Corporation
crc8blam.pas(42)
43 lines, 0.10 seconds, 12152 bytes code, 12168 bytes data.
D:\BP_WE\WORK\CRC_HASH>crc8blam.exe
Test:216
Gruß Gammatester