Calculadora de Módulo
La operación módulo devuelve el resto de la división entera. 17 módulo 5 es 2, porque 17 entre 5 da 3 con resto 2.
Responde a "cuánto sobra" en lugar de "cuántas veces cabe".
Cuando el resto es cero, el primer número es divisible entre el segundo, y así se comprueba la divisibilidad en prácticamente todo el código.
Aquí los lenguajes divergen, y es la fuente más común de errores con módulo.
En JavaScript, Java, C y C# el resultado hereda el signo del dividendo: menos 7 módulo 3 da menos 1. En Python y Ruby hereda el signo del divisor: la misma cuenta da 2.
Ambas convenciones son matemáticamente defendibles, pero producen valores distintos. Si portas código entre lenguajes y hay negativos de por medio, este es el primer sitio que revisar.
La definición matemática estricta de módulo exige un resultado no negativo, la versión de Python. La versión que sigue el signo del dividendo es, en rigor, el resto de la división truncada.
- Comprobar si un número es par: módulo 2 igual a cero.
- Alternar colores de fila en una tabla: el índice módulo 2 elige entre dos clases.
- Repartir elementos de forma cíclica entre N destinos, como en un balanceo de carga sencillo.
- Aritmética del reloj: sumar 8 horas a las 20:00 da las 04:00, que es 28 módulo 24.
- Dígitos de control de documentos y códigos de barras, casi todos basados en módulo 11 o módulo 10.
Preguntas frecuentes
Porque los lenguajes usan convenciones distintas. JavaScript, Java y C siguen el signo del dividendo; Python y Ruby el del divisor. Menos 7 módulo 3 da menos 1 en uno y 2 en el otro.
Para números positivos, sí. Con negativos, "resto" suele referirse a la división truncada y "módulo" a la definición matemática de resultado no negativo. La diferencia solo aparece ahí.
Comprueba si el módulo es cero. Un resto cero significa división exacta.
La operación es indefinida, igual que la división entre cero. La herramienta rechaza la entrada en lugar de devolver un valor sin sentido.