Skip to content

Calculadora de división larga CRC / XOR / módulo 2

Calculadora de división larga CRC / XOR / módulo 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 calculadora de división larga CRC / XOR / módulo 2 realiza división binaria sin acarreos ni préstamos, usando XOR bit a bit en cada paso. Esta es la aritmética detrás de las comprobaciones de redundancia cíclica (CRC): el mensaje se amplía con bits cero y se divide entre un polinomio generador, y el resto se convierte en la suma de comprobación CRC. Como la suma y la resta módulo 2 son ambas XOR, cada paso es una comparación sencilla de bits. Introduce una palabra de datos y un generador (divisor) para ver cada alineación, cada XOR y el resto final usado como CRC.

Cómo usar la calculadora de división larga CRC / XOR / módulo 2

Para calcular un CRC por división módulo 2, sigue estos 4 pasos:

  • Introduce el mensaje binario (bits de datos) en el primer campo.
  • Introduce el polinomio generador como bits binarios en el segundo campo.
  • La calculadora añade (n − 1) bits cero, donde n es la longitud del generador.
  • Haz clic en Calcular para ir haciendo XOR a lo largo del mensaje y lee el resto como CRC.

El cociente suele descartarse en el trabajo con CRC — el resto es la suma de comprobación que se añade al mensaje antes de la transmisión.

CRC y aritmética módulo 2

Una comprobación de redundancia cíclica detecta errores de transmisión tratando un mensaje como un polinomio binario grande y dividiéndolo entre un polinomio generador acordado. La división se hace en aritmética módulo 2 (GF(2)), donde suma y resta son idénticas e iguales a XOR — no hay acarreos ni préstamos. El resto de esa división es el CRC. Cuando el receptor divide el mensaje más el CRC entre el mismo generador, un resto 0 significa que no se detectó error. Esta calculadora reproduce ese proceso bit a bit exacto.

La división reparte un total en grupos iguales. La división larga lo hace cifra por cifra.

Divisor (32): el número por el que divides. Colócalo a la izquierda del corchete.

Cómo funciona la división CRC módulo 2

La calculadora calcula el CRC mediante cinco acciones internas:

  • Añade (n − 1) bits cero al mensaje, donde n es el número de bits del generador.
  • Alinea el generador bajo el bit 1 más a la izquierda del resto actual.
  • Hace XOR del generador con esos bits (resta módulo 2 sin préstamo).
  • Se desplaza al siguiente bit 1 principal y repite la alineación XOR.
  • Se detiene cuando quedan menos bits que el generador; esos bits son el CRC.

Cada bit del cociente es 1 donde el generador entra por XOR y 0 en el resto, pero para CRC solo importa el resto final.

Añade (n − 1) bits cero al mensaje, donde n es el número de bits del generador.

Fórmula de la división CRC

La calculadora de división larga CRC / XOR / módulo 2 calcula CRC = (M(x) · xⁿ⁻¹) mod G(x) en GF(2), donde M(x) es el mensaje, G(x) es el generador de n bits y todas las sumas son XOR. La trama transmitida es M(x)·xⁿ⁻¹ + CRC, que G(x) divide exactamente. En recepción, un resto cero confirma la integridad.

110100111 = 1011 × 108902 + 189 → La identidad se cumple

Problemas de ejemplo CRC / XOR

Estos ejemplos muestran división módulo 2 con XOR en cada paso.

Ejemplo 1 — Mensaje 1101, generador 101

  1. Longitud del generador 3, así añade 2 ceros: 1101 pasa a 110100.
  2. Hace XOR 101 en los bits principales repetidamente: 110100 → 011100 → 001000 → 000010.
  3. Los últimos 2 bits, 10, son el resto CRC.

Ejemplo 2 — Por qué la resta es XOR

  1. En módulo 2, 1 + 1 = 0 y 1 − 1 = 0, así sumar y restar son la misma operación.
  2. Esa operación es exactamente XOR bit a bit, sin acarreo ni préstamo.
  3. Así cada paso de división es un XOR del generador en los bits actuales.

Ejemplo 3 — Comprobación en el receptor

  1. Añade el CRC al mensaje y divide entre el mismo generador.
  2. Haz XOR hacia abajo exactamente como antes.
  3. Un resto 0 significa que no se detectó error.
Longitud del generador 3, así añade 2 ceros: 1101 pasa a 110100.
Hace XOR 101 en los bits principales repetidamente: 110100 → 011100 → 001000 → 000010.
Los últimos 2 bits, 10, son el resto CRC.

Problemas CRC resueltos

¿Cómo calculas el CRC de 10110 con generador 1011?

Añade 3 ceros (longitud del generador 4) para obtener 10110000, luego haz XOR hacia abajo. Alinea 1011 bajo cada 1 principal y haz XOR: 10110000 → 00100000 → tras sucesivos XOR los 3 bits finales forman el resto CRC. Luego el resto se añade a 10110 para que la trama completa sea divisible por 1011 sin resto.

1101001111011

¿Por qué un resto cero significa que los datos están intactos?

El emisor eligió el CRC para que la trama transmitida sea múltiplo exacto del generador. Cualquier múltiplo de G(x) dividido por G(x) deja resto 0. Si los bits cambian en tránsito, la trama ya no suele ser múltiplo, así la división del receptor deja un resto distinto de cero, señalando un error.

1010111

Errores frecuentes CRC / módulo 2

La división CRC módulo 2 produce 5 errores frecuentes:

  • Usar resta binaria ordinaria con préstamos en lugar de XOR.
  • Añadir un número incorrecto de bits cero (debe ser la longitud del generador menos uno).
  • Alinear el generador bajo un bit 0 en lugar del 1 principal.
  • Tratar acarreos como si existieran en aritmética GF(2).
  • Informar del cociente como CRC en lugar del resto.

La calculadora de división larga CRC / XOR / módulo 2 hace XOR en cada paso, añade los ceros correctos y devuelve el resto como suma de comprobación.

Usar resta binaria ordinaria con préstamos en lugar de XOR.
Añadir un número incorrecto de bits cero (debe ser la longitud del generador menos uno).
Alinear el generador bajo un bit 0 en lugar del 1 principal.
Tratar acarreos como si existieran en aritmética GF(2).
Informar del cociente como CRC en lugar del resto.

Preguntas frecuentes

¿Qué es la división módulo 2?

¿Qué es la división módulo 2?

Es división binaria en GF(2), donde suma y resta son ambas XOR y no hay acarreos ni préstamos. Cada paso hace XOR del generador en los bits actuales donde el bit principal es 1.

¿Cómo se calcula un CRC?

Añade (longitud del generador − 1) bits cero al mensaje, luego divide entre el generador usando división larga módulo 2 (XOR). El resto es la suma de comprobación CRC.

¿Por qué se usa XOR en lugar de la resta normal?

En aritmética módulo 2, 1 + 1 = 0 sin acarreo, así suma y resta son idénticas e iguales a XOR. Esto convierte cada paso de división en un solo XOR bit a bit.

¿Cuántos bits cero añado al mensaje?

Añade uno menos que el número de bits del generador. Un generador de 4 bits implica 3 ceros añadidos, reservando espacio para el resto CRC.

¿Cómo comprueba el receptor el CRC?

El receptor divide el mensaje más el CRC entre el mismo generador usando división módulo 2. Un resto 0 significa que no se detectó error; un resto distinto de cero señala corrupción.

¿Importa el cociente en CRC?

No. Para CRC solo se usa el resto como suma de comprobación. El cociente normalmente se descarta.

¿Qué es el polinomio generador?

Es el divisor binario acordado, escrito como polinomio como x³ + x + 1 (1011). Emisor y receptor deben usar el mismo generador para que la comprobación funcione.

La identidad CRC

La calculadora de división larga CRC / XOR / módulo 2 usa CRC = (M(x)·xⁿ⁻¹) mod G(x) en GF(2), así la trama transmitida M(x)·xⁿ⁻¹ + CRC es exactamente divisible por G(x). Como un múltiplo del generador deja resto 0, la división módulo 2 del receptor devuelve 0 cuando los datos están intactos.