Skip to content

CRC / XOR / Modulo-2 Schriftliche-Division-Rechner

CRC / XOR / Modulo-2 Schriftliche-Division-Rechner

CRC / XOR calculator: enter message bits and generator poly for modulo-2 division.

Output: CRC remainder after XOR long division.

Output: CRC remainder after XOR long division.

Der CRC / XOR / Modulo-2-Rechner führt Binärdvision ohne Überträge oder Entlehnungen aus und nutzt an jedem Schritt bitweises XOR. Das ist die Arithmetik hinter zyklischen Redundanzprüfungen (CRC): Die Nachricht wird mit Nullbits angehängt und durch ein Generatorpolynom geteilt; der Rest wird zur CRC-Prüfsumme. Weil Modulo-2-Addition und -Subtraktion beide XOR sind, ist jeder Schritt ein einfacher Bitvergleich. Geben Sie ein Datenwort und einen Generator (Divisor) ein, um jede Ausrichtung, jedes XOR und den finalen Rest als CRC zu sehen.

So verwenden Sie den CRC / XOR / Modulo-2-Rechner

Um eine CRC per Modulo-2-Division zu berechnen, folgen Sie diesen 4 Schritten:

  • Geben Sie die Binärnachricht (Datenbits) in das erste Feld ein.
  • Geben Sie das Generatorpolynom als Binärbits in das zweite Feld ein.
  • Der Rechner hängt (n − 1) Nullbits an, wobei n die Generatorlänge ist.
  • Klicken Sie auf Berechnen, XORen Sie die Nachricht herunter und lesen Sie den Rest als CRC.

Der Quotient wird in der CRC-Arbeit meist verworfen — der Rest ist die Prüfsumme, die vor der Übertragung an die Nachricht angehängt wird.

CRC und Modulo-2-Arithmetik

Eine zyklische Redundanzprüfung erkennt Übertragungsfehler, indem sie eine Nachricht als großes Binärpolynom behandelt und durch ein vereinbartes Generatorpolynom teilt. Die Division erfolgt in Modulo-2-Arithmetik (GF(2)), wo Addition und Subtraktion identisch sind und XOR entsprechen — es gibt keine Überträge oder Entlehnungen. Der Rest dieser Division ist die CRC. Teilt der Empfänger Nachricht plus CRC durch denselben Generator und bleibt Rest 0, wurde kein Fehler erkannt. Dieser Rechner bildet genau diesen bitweisen Prozess nach.

Die Division teilt eine Gesamtmenge in gleiche Gruppen. Die schriftliche Division tut dies Ziffer für Ziffer.

Divisor (32) – die Zahl, durch die Sie teilen. Setzen Sie sie links vom Winkel.

Wie Modulo-2-CRC-Division funktioniert

Der Rechner berechnet die CRC durch fünf interne Aktionen:

  • Hängt (n − 1) Nullbits an die Nachricht an, wobei n die Anzahl der Generatorbits ist.
  • Richtet den Generator unter das linkeste 1-Bit des aktuellen Rests aus.
  • XORt den Generator in diese Bits (Modulo-2-Subtraktion ohne Entlehnung).
  • Verschiebt zum nächsten führenden 1-Bit und wiederholt die XOR-Ausrichtung.
  • Stoppt, wenn weniger Bits als der Generator übrig sind; diese Bits sind die CRC.

Jedes Quotientenbit ist 1, wo der Generator per XOR eingefügt wird, sonst 0 — für CRC zählt nur der finale Rest.

Hängt (n − 1) Nullbits an die Nachricht an, wobei n die Anzahl der Generatorbits ist.

Formel für CRC-Division

Der CRC / XOR / Modulo-2-Rechner berechnet CRC = (M(x) · xⁿ⁻¹) mod G(x) in GF(2), wobei M(x) die Nachricht, G(x) der Generator mit n Bits ist und alle Additionen XOR sind. Der übertragene Rahmen ist M(x)·xⁿ⁻¹ + CRC, den G(x) exakt teilt. Beim Empfang bestätigt Rest 0 die Integrität.

110100111 = 1011 × 108902 + 189 → Identität gilt

CRC / XOR-Beispielaufgaben

Diese Beispiele zeigen Modulo-2-Division mit XOR in jedem Schritt.

Beispiel 1 — Nachricht 1101, Generator 101

  1. Generatorlänge 3, also 2 Nullen anhängen: 1101 wird 110100.
  2. 101 wiederholt in die führenden Bits XORen: 110100 → 011100 → 001000 → 000010.
  3. Die letzten 2 Bits, 10, sind der CRC-Rest.

Beispiel 2 — Warum Subtraktion XOR ist

  1. In Modulo-2 gilt 1 + 1 = 0 und 1 − 1 = 0, Addieren und Subtrahieren sind dieselbe Operation.
  2. Diese Operation ist genau bitweises XOR, ohne Übertrag oder Entlehnung.
  3. Jeder Divisionsschritt ist also ein XOR des Generators in die aktuellen Bits.

Beispiel 3 — Empfängerprüfung

  1. Hängen Sie die CRC an die Nachricht an und teilen Sie durch denselben Generator.
  2. XORen Sie wie zuvor herunter.
  3. Rest 0 bedeutet, dass kein Fehler erkannt wurde.
Generatorlänge 3, also 2 Nullen anhängen: 1101 wird 110100.
101 wiederholt in die führenden Bits XORen: 110100 → 011100 → 001000 → 000010.
Die letzten 2 Bits, 10, sind der CRC-Rest.

Durchgerechnete CRC-Aufgaben

Wie berechnet man die CRC von 10110 mit Generator 1011?

Hängen Sie 3 Nullen an (Generatorlänge 4) zu 10110000 und XORen Sie herunter. Richten Sie 1011 unter jede führende 1 aus und XORen: 10110000 → 00100000 → nach weiteren XORs bilden die finalen 3 Bits den CRC-Rest. Der Rest wird an 10110 angehängt, sodass der volle Rahmen durch 1011 ohne Rest teilbar ist.

1101001111011

Warum bedeutet Rest 0, dass die Daten intakt sind?

Der Sender wählte die CRC so, dass der übertragene Rahmen ein exaktes Vielfaches des Generators ist. Jedes Vielfache von G(x) geteilt durch G(x) lässt Rest 0. Kippen Bits unterwegs, ist der Rahmen meist kein Vielfaches mehr; die Empfängerdivision liefert einen von Null verschiedenen Rest und meldet einen Fehler.

1010111

Häufige CRC / Modulo-2-Fehler

Modulo-2-CRC-Division führt zu 5 häufigen Fehlern:

  • Normale Binärsubtraktion mit Entlehnungen statt XOR verwenden.
  • Falsche Anzahl Nullbits anhängen (es müssen Generatorlänge minus eins sein).
  • Den Generator unter eine 0 statt unter die führende 1 ausrichten.
  • Überträge behandeln, als gäbe es sie in GF(2)-Arithmetik.
  • Den Quotienten statt des Rests als CRC angeben.

Der CRC / XOR / Modulo-2-Rechner XORt in jedem Schritt, hängt die korrekten Nullen an und liefert den Rest als Prüfsumme.

Normale Binärsubtraktion mit Entlehnungen statt XOR verwenden.
Falsche Anzahl Nullbits anhängen (es müssen Generatorlänge minus eins sein).
Den Generator unter eine 0 statt unter die führende 1 ausrichten.
Überträge behandeln, als gäbe es sie in GF(2)-Arithmetik.
Den Quotienten statt des Rests als CRC angeben.

Haeufige Fragen

Was ist Modulo-2-Division?

Was ist Modulo-2-Division?

Binärdvision in GF(2), wo Addition und Subtraktion beide XOR sind und es keine Überträge oder Entlehnungen gibt. In jedem Schritt XORt man den Generator in die aktuellen Bits, wo das führende Bit 1 ist.

Wie wird eine CRC berechnet?

Hängen Sie (Generatorlänge − 1) Nullbits an die Nachricht an und teilen Sie durch den Generator per Modulo-2-(XOR-)Division. Der Rest ist die CRC-Prüfsumme.

Warum XOR statt normaler Subtraktion?

In Modulo-2-Arithmetik gilt 1 + 1 = 0 ohne Übertrag, Addition und Subtraktion sind identisch und entsprechen XOR. Jeder Divisionsschritt ist ein einzelnes bitweises XOR.

Wie viele Nullbits hänge ich an die Nachricht an?

Eins weniger als die Anzahl der Generatorbits. Ein 4-Bit-Generator bedeutet 3 angehängte Nullen — Platz für den CRC-Rest.

Wie prüft der Empfänger die CRC?

Er teilt Nachricht plus CRC durch denselben Generator per Modulo-2-Division. Rest 0 bedeutet kein erkannter Fehler; ein von Null verschiedener Rest signalisiert Korruption.

Ist der Quotient bei CRC wichtig?

Nein. Für CRC zählt nur der Rest als Prüfsumme. Der Quotient wird normalerweise verworfen.

Was ist das Generatorpolynom?

Der vereinbarte Binärdivisor, als Polynom geschrieben etwa x³ + x + 1 (1011). Sender und Empfänger müssen denselben Generator verwenden, damit die Prüfung funktioniert.

Die CRC-Identität

Der CRC / XOR / Modulo-2-Rechner nutzt CRC = (M(x)·xⁿ⁻¹) mod G(x) in GF(2), sodass der übertragene Rahmen M(x)·xⁿ⁻¹ + CRC exakt durch G(x) teilbar ist. Weil ein Vielfaches des Generators Rest 0 lässt, liefert die Modulo-2-Division des Empfängers 0, wenn die Daten intakt sind.