Calculatrice de grands nombres|Addition, soustraction, multiplication et puissance sans limite de chiffres (BigInt)

Outil gratuit pour calculer avec exactitude d'énormes entiers, sans aucune erreur d'arrondi. Grâce au BigInt de JavaScript, il calcule précisément additions, soustractions, multiplications, divisions entières (quotient et reste) et puissances, même au-delà de 9 007 199 254 740 991 (2^53 − 1).

Pourquoi la précision se dégrade au-delà de 2^53

Une calculatrice classique ou le type Number de JavaScript ne peuvent plus distinguer des entiers consécutifs au-delà de 2^53 (Number.MAX_SAFE_INTEGER). BigInt permet de calculer avec exactitude même au-delà de cette limite.

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

Ce que signifie le calcul exact sur de grands entiers

Une calculatrice ordinaire, comme le type numérique de la plupart des langages de programmation – dont le Number de JavaScript –, ne peut retenir exactement les entiers au-delà de 2^53 − 1 (9 007 199 254 740 991) ; passé ce seuil, l’erreur d’arrondi s’installe à mesure que les chiffres augmentent. Le calcul exact sur de grands entiers consiste à franchir ce plafond et à effectuer additions, soustractions, multiplications, divisions et puissances avec un nombre quelconque de chiffres, sans erreur.

Cet outil calcule avec le type BigInt de JavaScript : il n’existe donc pas de limite pratique au nombre de chiffres, et des entiers de plusieurs centaines de chiffres, comme en manipulent la cryptographie et la programmation compétitive, reviennent exacts. La division entière affiche ensemble le quotient et le reste et, les puissances devenant très vite gigantesques, une borne supérieure de sécurité s’applique à l’exposant.

Comment utiliser le calculateur

  1. Saisissez le premier entier (A) Entrez l’entier sur lequel vous voulez travailler. Les séparateurs de milliers sont supprimés automatiquement si vous les laissez.
  2. Choisissez l’opérateur Retenez l’addition, la soustraction, la multiplication, la division entière (quotient et reste) ou la puissance.
  3. Saisissez le second entier (B) Indiquez l’autre opérande. Pour la puissance, B est l’exposant.
  4. Consultez le résultat Le résultat et son nombre de chiffres se mettent à jour en temps réel au fil de la saisie. Pour la division entière, le quotient et le reste sont tous deux affichés.

Astuces pour en tirer le meilleur parti

  • Les calculatrices et tableurs classiques perdent en précision au-delà de 2^53 (environ 9 billiards), mais cet outil utilise BigInt pour calculer exactement, sans limite de chiffres.
  • La division entière (÷) affiche à la fois le quotient et le reste, pratique pour vérifier les opérations modulo utilisées en cryptographie et dans les fonctions de hachage.
  • L'exposant est plafonné à 1 000 000 par sécurité, car un exposant illimité pourrait bloquer le navigateur.
  • Vous pouvez coller des nombres avec des séparateurs de milliers (par exemple 1 234 567) : ils sont retirés automatiquement avant le calcul.
  • Cliquez sur "Insérer un exemple" pour remplir automatiquement un cas dépassant 2^53, et voir immédiatement la différence avec une calculatrice classique.

Quand cela sert

Vérifier des travaux de cryptographie

Utile pour étudier ou contrôler des techniques comme la génération de clés RSA, qui font intervenir de l’arithmétique sur des entiers de plusieurs centaines à plusieurs milliers de chiffres.

Contrôler des réponses en programmation compétitive

Confirmez rapidement les réponses attendues de problèmes portant sur des entiers de précision arbitraire, comme de grandes factorielles ou des termes éloignés de la suite de Fibonacci.

Repérer une erreur dans de grandes valeurs numériques

Vérifiez si un résultat calculé dans un tableur ou sur une calculatrice ordinaire a dépassé 2^53 et versé dans l’erreur d’arrondi, en le confrontant à la valeur exacte.

Étude et travaux de mathématiques

Constatez par vous-même comment croissent les puissances et les restes de nombres à nombreux chiffres, à partir de valeurs réelles plutôt que de descriptions.

Termes liés aux grands entiers

BigInt
Le type de données de JavaScript permettant de traiter exactement des entiers de longueur illimitée. Contrairement au type Number ordinaire, il calcule sans erreur au-delà de 2^53.
Entier de précision arbitraire (bignum)
Mécanisme représentant des entiers au-delà de la plage qu’un ordinateur gère nativement, sans limite de chiffres. En interne, les chiffres sont gérés comme un tableau et le calcul s’appuie sur cette structure.
Number.MAX_SAFE_INTEGER
Le plus grand entier que le type Number de JavaScript retient sûrement et sans erreur : 2^53 − 1, soit 9 007 199 254 740 991. Au-delà, les entiers voisins deviennent indiscernables.
Division entière
Division qui ne produit pas de décimales et sépare le résultat en quotient – la partie entière – et reste. En présence de nombres négatifs, le quotient est tronqué vers zéro.
RSA
Cryptosystème à clé publique employant comme clé le produit de deux grands nombres premiers. L’arithmétique sur des entiers de 2048 bits, soit plus de 600 chiffres décimaux, y est courante, ce qui rend indispensable la précision arbitraire.

Questions fréquentes

Le type Number habituel de JavaScript est un nombre à virgule flottante double précision (IEEE 754), qui ne peut représenter en toute sécurité que les entiers jusqu'à 2^53 − 1 (9 007 199 254 740 991). Au-delà, des entiers consécutifs deviennent indiscernables et les calculs perdent en précision. Cet outil évite entièrement cette limite en utilisant le type BigInt.

Non. BigInt est un type JavaScript conçu pour ne prendre en charge que les entiers, et ne peut pas représenter de fractions. Pour les calculs comportant des décimales, utilisez plutôt notre Calculatrice classique.

Le reste correspond à A − (quotient × B), le quotient étant tronqué vers zéro. Par exemple, −7 ÷ 2 donne un quotient de −3 et un reste de −1.

Elle est utile dès qu'une calculatrice classique manque de précision : vérifier des opérations sur des clés RSA (centaines à milliers de chiffres), calculer de grandes factorielles, ou contrôler une arithmétique de précision arbitraire en programmation compétitive.

Il n'existe pas de limite fixe, mais la mémoire et la vitesse de traitement du navigateur imposent des contraintes pratiques. Les nombres de plusieurs milliers de chiffres se calculent instantanément ; les cas extrêmes (comme un exposant supérieur à 1 000 000) sont limités par sécurité.
Tool-kun

Anecdote — Pourquoi les ordinateurs peinent avec les très grands nombres

La représentation numérique des ordinateurs a longtemps eu une limite stricte. Le type virgule flottante 64 bits (double précision), utilisé par défaut dans la plupart des langages de programmation, ne peut représenter en toute sécurité que les entiers jusqu'à 2^53 − 1 (9 007 199 254 740 991), car sa mantisse ne compte que 53 bits. Au-delà, des erreurs d'arrondi apparaissent dès qu'on représente de tels entiers. Notre propre outil Calculatrice possède exactement cette même limite de précision.

Les entiers de précision arbitraire (appelés "bignums") résolvent ce problème. Vers 2020, JavaScript a introduit un nouveau type nommé BigInt dans tous les grands navigateurs, permettant une arithmétique entière exacte sans autre limite de chiffres que la mémoire disponible. En interne, un bignum est stocké sous forme de blocs de chiffres, si bien que le temps de calcul augmente avec le nombre de chiffres — il existe un vrai compromis entre exactitude et vitesse.

Cette technologie est également indispensable en cryptographie. Les clés RSA, par exemple, utilisent couramment des entiers de 2048 bits (plus de 600 chiffres décimaux), et des bibliothèques de précision arbitraire sont utilisées partout dans le monde pour calculer avec exactitude les multiplications et exponentiations modulaires que ces clés exigent.

La programmation compétitive fait aussi fréquemment appel à d'énormes factorielles (100! compte 158 chiffres) ou à des termes lointains de la suite de Fibonacci. Les types numériques ordinaires accumulent des erreurs en cours de calcul, si bien que la maîtrise des bignums fait souvent la différence entre une solution correcte et une solution erronée.