Skip to content

Calculatrice CRC / XOR / division modulo 2

Calculatrice CRC / XOR / division modulo 2

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.

La calculatrice CRC / XOR / division modulo 2 effectue une division binaire sans retenue ni emprunt, en appliquant un XOR bit à bit à chaque étape. C'est l'arithmétique derrière les contrôles de redondance cyclique (CRC) : le message reçoit des bits nuls en suffixe et se divise par un polynôme générateur, et le reste devient la somme de contrôle CRC. Comme l'addition et la soustraction modulo 2 ne sont que du XOR, chaque étape se réduit à une simple comparaison de bits. Saisissez un mot de données et un générateur (diviseur) pour voir chaque alignement, chaque XOR et le reste final utilisé comme CRC.

Comment utiliser la calculatrice CRC / XOR / division modulo 2

Pour calculer un CRC par division modulo 2, suivez ces 4 étapes :

  • Saisissez le message binaire (bits de données) dans le premier champ.
  • Saisissez le polynôme générateur sous forme de bits binaires dans le second champ.
  • La calculatrice ajoute (n − 1) bits nuls, où n est la longueur du générateur.
  • Cliquez sur Calculer pour XORer le message bit par bit et lisez le reste comme CRC.

Le quotient est généralement ignoré en CRC — le reste est la somme de contrôle qui s'ajoute au message avant la transmission.

CRC et arithmétique modulo 2

Un contrôle de redondance cyclique détecte les erreurs de transmission en traitant un message comme un grand polynôme binaire et en le divisant par un polynôme générateur convenu. La division se fait en arithmétique modulo 2 (GF(2)), où addition et soustraction sont identiques et valent XOR — il n'y a ni retenue ni emprunt. Le reste de cette division est le CRC. Lorsque le récepteur divise le message plus le CRC par le même générateur, un reste de 0 signifie qu'aucune erreur n'a été détectée. Cette calculatrice reproduit exactement ce processus bit à bit.

La division partage un total en groupes égaux. La division posée le fait chiffre par chiffre.

Diviseur (32) : le nombre par lequel vous divisez. Placez-le à gauche de la potence.

Comment fonctionne la division CRC modulo 2

La calculatrice calcule le CRC au moyen de cinq actions internes :

  • Ajoute (n − 1) bits nuls au message, où n est le nombre de bits du générateur.
  • Aligne le générateur sous le bit 1 le plus à gauche du reste courant.
  • XOR le générateur dans ces bits (soustraction modulo 2 sans emprunt).
  • Décale vers le bit 1 suivant et répète l'alignement XOR.
  • S'arrête lorsque les bits restants sont moins nombreux que le générateur ; ces bits sont le CRC.

Chaque bit du quotient vaut 1 partout où le générateur est XORé et 0 ailleurs, mais pour le CRC seul le reste final compte.

Ajoute (n − 1) bits nuls au message, où n est le nombre de bits du générateur.

Formule de la division CRC

La calculatrice CRC / XOR / division modulo 2 calcule CRC = (M(x) · xⁿ⁻¹) mod G(x) dans GF(2), où M(x) est le message, G(x) le générateur de n bits, et toutes les additions sont des XOR. La trame transmise est M(x)·xⁿ⁻¹ + CRC, que G(x) divise exactement. Côté réception, un reste nul confirme l'intégrité.

110100111 = 1011 × 108902 + 189 → L'identité est vérifiée

Problèmes d'exemple CRC / XOR

Ces exemples montrent la division modulo 2 avec XOR à chaque étape.

Exemple 1 — Message 1101, générateur 101

  1. Longueur du générateur 3, donc ajoutez 2 zéros : 1101 devient 110100.
  2. XOR 101 dans les bits de tête de façon répétée : 110100 → 011100 → 001000 → 000010.
  3. Les 2 derniers bits, 10, sont le reste CRC.

Exemple 2 — Pourquoi la soustraction est un XOR

  1. En modulo 2, 1 + 1 = 0 et 1 − 1 = 0, donc addition et soustraction sont la même opération.
  2. Cette opération est exactement le XOR bit à bit, sans retenue ni emprunt.
  3. Chaque étape de division est donc un XOR du générateur dans les bits courants.

Exemple 3 — Vérification côté récepteur

  1. Ajoutez le CRC au message et divisez par le même générateur.
  2. XORer bit par bit exactement comme avant.
  3. Un reste de 0 signifie qu'aucune erreur n'a été détectée.
Longueur du générateur 3, donc ajoutez 2 zéros : 1101 devient 110100.
XOR 101 dans les bits de tête de façon répétée : 110100 → 011100 → 001000 → 000010.
Les 2 derniers bits, 10, sont le reste CRC.

Problèmes CRC résolus

Comment calculer le CRC de 10110 avec le générateur 1011 ?

Ajoutez 3 zéros (longueur du générateur 4) pour obtenir 10110000, puis XORer vers le bas. Alignez 1011 sous chaque 1 de tête et XOR : 10110000 → 00100000 → après des XOR successifs, les 3 bits finaux forment le reste CRC. Le reste s'ajoute ensuite à 10110 pour que la trame complète soit divisible par 1011 sans reste.

1101001111011

Pourquoi un reste nul signifie-t-il que les données sont intactes ?

L'émetteur a choisi le CRC pour que la trame transmise soit un multiple exact du générateur. Tout multiple de G(x) divisé par G(x) laisse un reste 0. Si des bits basculent en transit, la trame n'est plus en général un multiple, donc la division côté récepteur laisse un reste non nul, signalant une erreur.

1010111

Erreurs fréquentes CRC / modulo 2

La division CRC modulo 2 produit 5 erreurs fréquentes :

  • Utiliser une soustraction binaire ordinaire avec emprunts au lieu du XOR.
  • Ajouter un mauvais nombre de bits nuls (il faut la longueur du générateur moins un).
  • Aligner le générateur sous un bit 0 au lieu du 1 de tête.
  • Traiter des retenues comme si elles existaient en arithmétique GF(2).
  • Rapporter le quotient comme CRC au lieu du reste.

La calculatrice CRC / XOR / division modulo 2 XOR à chaque étape, ajoute les zéros corrects et renvoie le reste comme somme de contrôle.

Utiliser une soustraction binaire ordinaire avec emprunts au lieu du XOR.
Ajouter un mauvais nombre de bits nuls (il faut la longueur du générateur moins un).
Aligner le générateur sous un bit 0 au lieu du 1 de tête.
Traiter des retenues comme si elles existaient en arithmétique GF(2).
Rapporter le quotient comme CRC au lieu du reste.

Questions frequentes

Qu'est-ce que la division modulo 2 ?

Qu'est-ce que la division modulo 2 ?

C'est une division binaire dans GF(2), où addition et soustraction valent toutes deux XOR et où il n'y a ni retenue ni emprunt. Chaque étape XOR le générateur dans les bits courants partout où le bit de tête vaut 1.

Comment calcule-t-on un CRC ?

Ajoutez (longueur du générateur − 1) bits nuls au message, puis divisez par le générateur en division posée modulo 2 (XOR). Le reste est la somme de contrôle CRC.

Pourquoi utilise-t-on XOR au lieu d'une soustraction normale ?

En arithmétique modulo 2, 1 + 1 = 0 sans retenue, donc addition et soustraction sont identiques et valent XOR. Chaque étape de division devient un seul XOR bit à bit.

Combien de bits nuls ajouter au message ?

Ajoutez un de moins que le nombre de bits du générateur. Un générateur de 4 bits signifie 3 zéros ajoutés, ce qui réserve la place pour le reste CRC.

Comment le récepteur vérifie-t-il le CRC ?

Le récepteur divise le message plus le CRC par le même générateur en division modulo 2. Un reste de 0 signifie qu'aucune erreur n'a été détectée ; un reste non nul signale une corruption.

Le quotient est-il important en CRC ?

Non. Pour le CRC, seul le reste sert de somme de contrôle. Le quotient est normalement ignoré.

Qu'est-ce que le polynôme générateur ?

C'est le diviseur binaire convenu, écrit comme un polynôme tel que x³ + x + 1 (1011). L'émetteur et le récepteur doivent utiliser le même générateur pour que la vérification fonctionne.

L'identité CRC

La calculatrice CRC / XOR / division modulo 2 utilise CRC = (M(x)·xⁿ⁻¹) mod G(x) dans GF(2), si bien que la trame transmise M(x)·xⁿ⁻¹ + CRC est exactement divisible par G(x). Comme un multiple du générateur laisse un reste 0, la division modulo 2 côté récepteur renvoie 0 lorsque les données sont intactes.