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.
Das man von LSB nach MSB schiebt kommt das MSB sowieso dran, nehm ich an.
Das 17te Bit ist nicht in der Konstanten (0x1021) sondern im Code. Vielleicht dadurch, dass immer 16 Bit verwendet werden.
> 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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.