Forum: Mikrocontroller und Digitale Elektronik CRC Polynome und die zugehörige Bitfolge


von Matthias (Gast)


Lesenswert?

Hallo,

ich steh hier grad vor einem kleinen Problem:
Mir will irgendwie nicht klar werden, wie diese Polynome zu den
Bitfolgen passen. Laut avr-libc ist das Polynom
x^16 + x^12 + x^5 + 1 gleich der Bitfolge 0x1021 (also 0001 0000 0010 
0001). Aber ich kommen umgekehrt von der Bitfolge nur auf ein
Polynom x^12 + x^5 + 1.
Woher kommt das x^16?
Für mich würde sich dann nämlich die Bitfolge
1 0001 0000 0010 0001 ergeben.

von 6636 (Gast)


Lesenswert?

Das man von LSB nach MSB schiebt kommt das MSB sowieso dran, nehm ich 
an.

von Hans-jürgen H. (hjherbert) Benutzerseite


Lesenswert?

Das 17te Bit ist nicht in der Konstanten (0x1021) sondern im Code. 
Vielleicht dadurch, dass immer 16 Bit verwendet werden.

von Hans H. (hanshein)


Lesenswert?

> Für mich würde sich dann nämlich die Bitfolge
> 1 0001 0000 0010 0001 ergeben.

Perfekt!

Im GF(2)-Koerper ist die Addition/Subtraktion gleich
einem XOR. Die CRC-Operation entspricht einem (Polynom-)
Teilen mit Rest.

Wie beim schriftlichen Dividieren sucht man sich die "linkeste"
Stelle wo man die Operation ausfuehren kann, also etwa

1 abcd efgh ijkl mnop    ( a..p \elem {0,1} )

darunter schreibt man wie beim schriftlichen Dividieren:

1 0001 0000 0010 0001

als erste Stelle kommt (IMMER) durch das XOR eine Null

0 .... .... .... .... ( "." = irgendwas, momentan unwichtig)

das heisst aber, dass ich das "linkeste Bit" auch fuer
die "eigentliche" XOR-Operation vergessen kann.

-Hans

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.