Forum: Mikrocontroller und Digitale Elektronik CRC Berechnung


von Robert (robert1983)


Lesenswert?

Hallo,

ich berechne folgende CRC:

Data bits: D = 1010101010.
Generator bits: G = 10001.

10101010100000
10001|||||||||
-----|||||||||
  10001|||||||
  10001|||||||
  -----|||||||
  00000010000|
        10001|
        ------
        000010

CRC = Rest = 0010

Wie kann ich das dezimal berechnen?
10101010100000 mod 10001
= 10912 (dezimal) mod 17 (dezimal)
= 15 (dezimal)
= 1111

1111 != CRC

Vielen Dank

von Falk B. (falk)


Lesenswert?

Robert schrieb:
> Wie kann ich das dezimal berechnen?

Wozu? Dieser CRC Algorithmus ist nur binär definiert und hat nur da 
einen logischen wie praktischen Sinn. Es ist eine binäre 
Polynomdivision.

von Robert (robert1983)


Lesenswert?

Ich wollte nur verstehen ob es doch einen Zusammenhang gibt. Die 
Praktische Berechnung ist ok und funktioniert binär.

von Andreas H. (ahz)


Lesenswert?

Robert schrieb:
> Ich wollte nur verstehen

Schau Dir doch mal an was die CRC Berechnung macht. Falk hat es ja schon 
geschrieben.

Es werden zwei -->Polynome<-- im Restring Z/2Z dividiert.
Das ist etwas anderes als zwei Binärzahlen zu dividieren (es gibt z.B. 
keinen Übertrag).

Darum geht der Versuch, dass in Dezimal zu machen auch schief.

Hth

/regards

von Ralf D. (doeblitz)


Lesenswert?

Robert schrieb:
> Ich wollte nur verstehen ob es doch einen Zusammenhang gibt. Die
> Praktische Berechnung ist ok und funktioniert binär.

Der passende Suchbgeriff ist "Polynomrestklassenalgebra", darunter 
findest du im Bereich Informatik und Mathematik die einschlägige 
Fachliteratur – falls dich die Theorie hinter den CRC-Berechnungen 
interessiert.

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.