Calculadora de números enormes|Suma, resta, multiplicación y potencia sin límite de dígitos (BigInt)

Herramienta gratuita para calcular con exactitud enteros enormes sin ningún error de redondeo. Usa BigInt de JavaScript para realizar sumas, restas, multiplicaciones, divisiones enteras (cociente y resto) y potencias exactas incluso por encima de 9.007.199.254.740.991 (2^53 − 1).

Por qué la precisión falla al superar 2^53

Una calculadora normal o el tipo Number de JavaScript ya no pueden distinguir enteros consecutivos al superar 2^53 (Number.MAX_SAFE_INTEGER). BigInt permite calcular con exactitud incluso más allá de ese límite.

Number.MAX_SAFE_INTEGER 9,007,199,254,740,991(253 − 1)
9007199254740992 + 1 Number: 9007199254740992 (incorrecto) / BigInt: 9007199254740993 (exacto)

Qué significa el cálculo exacto con enteros grandes

Una calculadora corriente, y el tipo numérico de la mayoría de los lenguajes de programación —entre ellos el Number de JavaScript—, no puede guardar con exactitud enteros por encima de 2^53 − 1 (9.007.199.254.740.991); pasado ese punto aparece error de redondeo a medida que crecen las cifras. El cálculo exacto con enteros grandes consiste en superar ese techo y realizar sumas, restas, multiplicaciones, divisiones y potencias con cualquier número de dígitos sin error.

Esta herramienta calcula con el tipo BigInt de JavaScript, de modo que no hay un límite práctico de dígitos: enteros de varios cientos de cifras, de los que aparecen en criptografía y en programación competitiva, se devuelven exactos. La división entera muestra a la vez el cociente y el resto y, como las potencias crecen enormemente muy deprisa, se impone un límite superior seguro al exponente.

Cómo usar la calculadora

  1. Introduzca el primer entero (A) Escriba el entero con el que quiere operar. Los separadores de millares se eliminan automáticamente si los deja.
  2. Elija el operador Seleccione suma, resta, multiplicación, división entera (cociente y resto) o potencia.
  3. Introduzca el segundo entero (B) Aporte el otro operando. En la potencia, B es el exponente.
  4. Consulte el resultado El resultado y su número de cifras se actualizan en tiempo real mientras escribe. En la división entera se muestran cociente y resto.

Consejos para aprovecharla mejor

  • Las calculadoras y hojas de cálculo comunes pierden precisión al superar 2^53 (unos 9 mil billones), pero esta herramienta usa BigInt para calcular con exactitud sin límite de dígitos.
  • La división entera (÷) muestra a la vez el cociente y el resto, útil para verificar operaciones de módulo usadas en criptografía y funciones hash.
  • El exponente está limitado a 1.000.000 por seguridad, ya que un exponente ilimitado podría bloquear el navegador.
  • Puedes pegar números con comas de miles (por ejemplo 1.234.567): se eliminan automáticamente antes de calcular.
  • Pulsa "Insertar ejemplo" para rellenar automáticamente un caso que supera 2^53, y así ver de inmediato la diferencia con una calculadora normal.

Cuándo resulta útil

Verificar trabajos de criptografía

Útil para estudiar o comprobar técnicas como la generación de claves RSA, que implican aritmética con enteros de varios cientos a varios miles de cifras.

Contrastar respuestas en programación competitiva

Confirme rápidamente las respuestas esperadas de problemas con enteros de precisión arbitraria, como factoriales grandes o términos lejanos de la sucesión de Fibonacci.

Detectar error en datos numéricos grandes

Compruebe si un resultado calculado en una hoja de cálculo o en una calculadora corriente ha superado 2^53 y ha caído en el error de redondeo, contrastándolo con el valor exacto.

Estudio y trabajos de matemáticas

Vea por sí mismo cómo crecen las potencias y los restos de números de muchas cifras, partiendo de valores reales en lugar de descripciones.

Términos sobre enteros grandes

BigInt
El tipo de dato de JavaScript para manejar con exactitud enteros de longitud ilimitada. A diferencia del tipo Number corriente, calcula sin error enteros por encima de 2^53.
Entero de precisión arbitraria (bignum)
Mecanismo para representar enteros más allá del rango que un ordenador maneja de forma nativa, sin límite de cifras. Internamente las cifras se gestionan como una matriz y se calcula sobre esa base.
Number.MAX_SAFE_INTEGER
El mayor entero que el tipo Number de JavaScript puede guardar con seguridad y sin error: 2^53 − 1, es decir, 9.007.199.254.740.991. Más allá, los enteros contiguos dejan de distinguirse.
División entera
División que no produce decimales y separa el resultado en cociente —la parte entera— y resto. Cuando intervienen números negativos, el cociente se trunca hacia cero.
RSA
Criptosistema de clave pública que usa como clave el producto de dos números primos grandes. La aritmética con enteros de 2048 bits, más de 600 cifras decimales, es habitual, de modo que el manejo de precisión arbitraria resulta indispensable.

Preguntas frecuentes

El tipo Number habitual de JavaScript es un número de coma flotante de doble precisión (IEEE 754), que solo puede representar con seguridad enteros hasta 2^53 − 1 (9.007.199.254.740.991). Más allá de ese límite, enteros consecutivos se vuelven indistinguibles y los cálculos pierden precisión. Esta herramienta evita por completo ese límite usando el tipo BigInt.

No. BigInt es un tipo de JavaScript diseñado para admitir únicamente enteros, y no puede representar fracciones. Para cálculos con decimales, usa nuestra Calculadora estándar.

El resto es A − (cociente × B), donde el cociente se trunca hacia cero. Por ejemplo, −7 ÷ 2 da un cociente de −3 y un resto de −1.

Es útil siempre que una calculadora normal se quede corta en precisión: verificar operaciones con claves RSA (cientos o miles de dígitos), calcular factoriales enormes o comprobar aritmética de precisión arbitraria en programación competitiva.

No existe un límite fijo, pero la memoria y la velocidad de procesamiento del navegador imponen restricciones prácticas. Números de miles de dígitos se calculan al instante; los casos extremos (como un exponente superior a 1.000.000) están limitados por seguridad.
Tool-kun

A propósito — Por qué los ordenadores no se llevan bien con los números enormes

La representación numérica en los ordenadores ha tenido durante mucho tiempo un límite estricto. El tipo de coma flotante de 64 bits (doble precisión), usado por defecto en la mayoría de lenguajes de programación, solo puede representar con seguridad enteros hasta 2^53 − 1 (9.007.199.254.740.991), porque su mantisa tiene apenas 53 bits. Más allá de eso aparecen errores de redondeo al representar esos enteros. Nuestra propia herramienta Calculadora tiene exactamente esta misma limitación de precisión.

Los enteros de precisión arbitraria (conocidos como "bignums") resuelven este problema. Hacia 2020, JavaScript incorporó un nuevo tipo llamado BigInt en todos los navegadores principales, permitiendo aritmética entera exacta sin más límite de dígitos que la memoria disponible. Internamente, un bignum se almacena como una serie de bloques de dígitos, así que el tiempo de cálculo crece con el número de dígitos: hay un compromiso real entre exactitud y velocidad.

Esta tecnología es imprescindible en criptografía. Las claves RSA, por ejemplo, usan habitualmente enteros de 2048 bits (más de 600 dígitos decimales), y las bibliotecas de precisión arbitraria se usan en todo el mundo para calcular las multiplicaciones y exponenciaciones modulares que requieren estas claves.

La programación competitiva involucra con frecuencia factoriales enormes (100! tiene 158 dígitos) o términos lejanos de la sucesión de Fibonacci. Los tipos numéricos habituales acumulan errores a mitad de estos cálculos, así que el dominio de los bignums suele marcar la diferencia entre una solución correcta y una incorrecta.