Java Academy · Les

BigInteger voor enorme getallen

Gehele getallen met willekeurige precisie

Les 4 van 413 stappen

BigInteger voor enorme getallen is een gratis Java Academy-les op CoddyKit. Dit is les 4 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Java Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Java Academy bevat in totaal 4 lessen.

Voorbij long

Het primitieve type long kan waarden bevatten tot ongeveer 9,2 × 10^18. Als je grotere gehele getallen nodig hebt, biedt Java BigInteger uit het pakket java.math, zonder vaste bovengrens.

Wanneer long overloopt

Als je Long.MAX_VALUE overschrijdt, loopt de waarde stilzwijgend door naar een negatief getal. Dit vervormde resultaat is een klassieke bron van fouten.

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

Een BigInteger maken

Maak een BigInteger vanuit een tekenreeks met cijfers. Er is geen lengtelimiet, dus je kunt getallen schrijven die veel groter zijn dan elk primitief type.

import java.math.BigInteger;

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

Vanuit een long met valueOf

Als je beginwaarde in een long past, is BigInteger.valueOf een handige fabrieksmethode.

import java.math.BigInteger;

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

Onveranderlijke rekenkunde

Net als BigDecimal is BigInteger onveranderlijk. add, subtract en multiply retourneren nieuwe objecten die je moet opslaan.

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));
    }
}

Grote getallen vermenigvuldigen

Een vermenigvuldiging die bij een long zou overlopen, werkt probleemloos met 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));
    }
}

Een faculteit berekenen

Faculteiten groeien explosief. Zelfs de faculteit van 30 loopt bij een long over, maar BigInteger verwerkt die zonder problemen.

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);
    }
}

Macht en modulo

pow verheft een waarde tot een gehele exponent en mod geeft de rest. Beide worden vaak gebruikt in cryptografie.

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)));
    }
}

Waarden vergelijken

Gebruik compareTo om twee BigInteger-waarden te ordenen. De methode retourneert een negatief getal, nul of een positief getal.

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));
    }
}

Handige constanten

BigInteger biedt ZERO, ONE, TWO en TEN. Gebruik deze als beginwaarden voor accumulators of in lussen.

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);
    }
}

Wanneer je het gebruikt

Gebruik BigInteger voor faculteiten, zeer grote tellers, cryptografische sleutels en overal waar een resultaat groter kan worden dan long. Gebruik voor gewone tellingen primitieve typen, want die zijn veel sneller.

Korte controle

Controleer je begrip van BigInteger.

Samenvatting

Je hebt geleerd hoe je BigInteger gebruikt:

  • long loopt stilzwijgend over, maar BigInteger heeft geen vaste limiet
  • Maak het vanuit een tekenreeks of met valueOf
  • Het is onveranderlijk, dus sla het resultaat van elke bewerking op
  • add, multiply, pow en mod dekken veelgebruikte rekenkundige bewerkingen af
  • Gebruik het voor faculteiten, cryptografie en elke waarde die groter is dan long
Gratis beginnen

Leer Java met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
104
Lessen
374

Veelgestelde vragen

Is de les “BigInteger voor enorme getallen” gratis?

Ja — de volledige tekst van “BigInteger voor enorme getallen” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Java Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Java Academy bevat in totaal 4 lessen.

Wat leer ik in “BigInteger voor enorme getallen”?

Gehele getallen met willekeurige precisie Je oefent met Java Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Java Academy te beginnen?

Ervaring vooraf is niet nodig. Java Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 4 van 4.

Hoe lang duurt de les “BigInteger voor enorme getallen”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Java Academy?

Ja. Elke les over Java Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Waarom geen double voor geld
  2. Werken met BigDecimal
  3. Afronding en schaal
  4. BigInteger voor enorme getallen
← Terug naar Java Academy