0Pricing
Java Academy · Leçon

BigInteger pour les nombres gigantesques

Entiers à précision arbitraire

BigInteger pour les nombres gigantesques est une leçon Java Academy gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Java Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Java Academy comprend 4 leçons au total.

Au-delà des entiers longs

Le type primitif long peut contenir des valeurs allant jusqu’à environ 9,2 quintillions. Lorsque vous avez besoin d’entiers plus grands, Java fournit BigInteger dans le paquet java.math, sans limite supérieure fixe.

Quand un entier long déborde

Dépasser Long.MAX_VALUE fait silencieusement revenir la valeur à un nombre négatif. Cette corruption est une source classique de bogues.

public class Main {
    public static void main(String[] args) {
        long max = Long.MAX_VALUE;
        System.out.println(max);
        System.out.println(max + 1);
    }
}

Créer un BigInteger

Créez un BigInteger à partir d’une chaîne de chiffres. Il n’existe aucune limite de longueur : vous pouvez donc écrire des nombres bien plus grands que n’importe quel type primitif.

import java.math.BigInteger;

public class Main {
    public static void main(String[] args) {
        BigInteger huge = new BigInteger("123456789012345678901234567890");
        System.out.println(huge);
    }
}

Depuis un entier long avec valueOf

Si votre valeur de départ tient dans un long, BigInteger.valueOf constitue une méthode de fabrique pratique.

import java.math.BigInteger;

public class Main {
    public static void main(String[] args) {
        BigInteger n = BigInteger.valueOf(1000000);
        System.out.println(n);
    }
}

Arithmétique immuable

Comme BigDecimal, BigInteger est immuable. add, subtract et multiply renvoient de nouveaux objets que vous devez récupérer.

import java.math.BigInteger;

public class Main {
    public static void main(String[] args) {
        BigInteger a = new BigInteger("99999999999999999999");
        BigInteger b = BigInteger.valueOf(1);
        System.out.println(a.add(b));
    }
}

Multiplier de grands nombres

Une multiplication qui provoquerait un dépassement avec un long fonctionne parfaitement avec BigInteger.

import java.math.BigInteger;

public class Main {
    public static void main(String[] args) {
        BigInteger a = new BigInteger("10000000000");
        BigInteger b = new BigInteger("10000000000");
        System.out.println(a.multiply(b));
    }
}

Calculer une factorielle

Les factorielles croissent de manière fulgurante. Même la factorielle de 30 dépasse la capacité d’un long, mais BigInteger la gère facilement.

import java.math.BigInteger;

public class Main {
    public static void main(String[] args) {
        BigInteger result = BigInteger.ONE;
        for (int i = 1; i <= 30; i++) {
            result = result.multiply(BigInteger.valueOf(i));
        }
        System.out.println(result);
    }
}

Puissance et modulo

pow élève une valeur à une puissance entière, et mod fournit le reste. Les deux sont courants en cryptographie.

import java.math.BigInteger;

public class Main {
    public static void main(String[] args) {
        BigInteger base = BigInteger.valueOf(2);
        System.out.println(base.pow(64));
        System.out.println(base.pow(10).mod(BigInteger.valueOf(7)));
    }
}

Comparer les valeurs

Utilisez compareTo pour ordonner deux valeurs BigInteger. La méthode renvoie un nombre négatif, zéro ou un nombre positif.

import java.math.BigInteger;

public class Main {
    public static void main(String[] args) {
        BigInteger a = new BigInteger("500");
        BigInteger b = new BigInteger("1000");
        System.out.println(a.compareTo(b));
    }
}

Constantes pratiques

BigInteger fournit ZERO, ONE, TWO et TEN. Utilisez-les comme accumulateurs initiaux ou dans les boucles.

import java.math.BigInteger;

public class Main {
    public static void main(String[] args) {
        BigInteger sum = BigInteger.ZERO;
        sum = sum.add(BigInteger.TEN).add(BigInteger.ONE);
        System.out.println(sum);
    }
}

Quand l’utiliser

Utilisez BigInteger pour les factorielles, les compteurs très grands, les clés cryptographiques et partout où un résultat pourrait dépasser la capacité d’un long. Pour les comptages ordinaires, restez aux types primitifs, qui sont beaucoup plus rapides.

Vérification rapide

Évaluez votre compréhension de BigInteger.

Récapitulatif

Vous avez appris à utiliser BigInteger :

  • long déborde silencieusement, tandis que BigInteger n’a pas de limite fixe
  • Créez-le à partir d’une chaîne de caractères ou avec valueOf
  • Il est immuable : récupérez donc le résultat de chaque opération
  • add, multiply, pow et mod couvrent les calculs courants
  • Utilisez-le pour les factorielles, la cryptographie et toute valeur dépassant la capacité d’un long

Questions Fréquemment Posées

La leçon « BigInteger pour les nombres gigantesques » est-elle gratuite ?

Oui — le texte complet de « BigInteger pour les nombres gigantesques » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Java Academy, passe à CoddyKit PRO. Le cours Java Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « BigInteger pour les nombres gigantesques » ?

Entiers à précision arbitraire Tu pratiques Java Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Java Academy ?

Aucune expérience préalable n'est requise. Java Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.

Combien de temps prend la leçon « BigInteger pour les nombres gigantesques » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Java Academy ?

Oui. Chaque leçon Java Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Pourquoi ne pas utiliser double pour l’argent
  2. Travailler avec BigDecimal
  3. Arrondi et échelle
  4. BigInteger pour les nombres gigantesques
← Retour à Java Academy