Forum: Compiler & IDEs Nachhilfe CRC


von Moni (Gast)


Lesenswert?

Hallo!

Hab folgende Frage an euch:
Hab einen Datenpaket der Struktur:
Empänger + Absender + Länge + Daten + CRC.

Jetzt ist es erlaubt, dass der Pointer auf die Daten belassen wird, aber 
deren Inhalt (aber nicht Länge) geändert werden darf.

Eigentlich müsste ich mir die aktuellen Daten holen und über alles die 
CRC neu berechnen. Jetzt habe ich mir aber gedacht, dass ja die ersten 
Bytes immmer gleich sind. Da könnte ich mir das Berechnen der CRC 
sparen, da bis dahin das Ergebnis immer gleich ist.

Wie kann man jetzt die CRC dazubringen, dass sie mit der CRC bis zur 
Länge anfängt und dann nur noch die Daten macht?

Gruß
Moni

von Ano N. (oorim)


Lesenswert?

Wenn du die Routine zum Berechnen hast und die Zeit egal ist jag es doch 
über das gesamte neue Paket?

Grüße

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Moni schrieb:
> Wie kann man jetzt die CRC dazubringen, dass sie mit der CRC bis zur
> Länge anfängt und dann nur noch die Daten macht?

Der CRC-Wert muss ja immer eine initiale Zuweisung bekommen, denn
das Prinzip ist ja:
1
   crc := initialwert;
2
   while (noch_daten_vorhanden) {
3
      crc := berechne_crc(aktuelles_datum, crc);
4
   }

Der initialwert in diesem Pseudocode ist dabei in der Regel 0 oder
0xffff oder sowas; dort musst du den Wert eintragen, der sich nach
der Abarbeitung deiner Adressfelder ergibt.

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.