Forum: Compiler & IDEs CRC Mathematiker gesucht


von Oddel (Gast)


Lesenswert?

Nabend,

ist es möglich , bzw. gibt es ein Tool aus einem String von 8 Bytes und 
der beiden bekannten CRC16 Bytes den CRC initialwert und das Polynom zu 
bestimmen.
Bin jetzt nicht der CRC Experte aber die beiden brauch ich ja um CRC zu 
berechnen.
Diesen Code habe ich als Grundlage , es soll sich beim CRC um reverse 
CRC handeln, also bits umgekehrt angeordnet.

1
uint16_t calcCRC16r( uint16_t c,uint16_t crc, uint16_t mask) 
2
{
3
uint8_t i;
4
  for(i=0;i<8;i++)
5
  {
6
    if((crc ^ c) & 1) { crc=(crc>>1)^mask; }
7
    else crc>>=1;
8
    c>>=1;
9
  };
10
 return(crc);
11
}

von Uwe (de0508)


Lesenswert?

Hallo ich empfehle hier mal nach zu lesen:

http://de.wikipedia.org/wiki/Zyklische_Redundanzpr%C3%BCfung

um die Funktion besser zu verstehen.

.

von Tobias (Gast)


Lesenswert?

Es gibt möglicherweise effizientere Wege aber berechne doch alle 
möglichen Permutationen des Polynoms und wenn du genau 1 richtiges 
Polynom findest, dann hast du dein gesuchtes Polynom gefunden, bei 0 
Übereinstimmungen hast du noch einen Programmierfehler und bei mehr als 
1 Polynom (denke nicht, dass das auftritt) brauchst du eben mehrere 
Beispiele um das richtige Polynom anhand aller Beispiele zu bestimmen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.