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(誤り) / BigInt: 9007199254740993(正確) |
Consejos
- 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.
Preguntas frecuentes
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.