BigInteger für riesige Zahlen
Ganzzahlen mit beliebiger Präzision
BigInteger für riesige Zahlen ist eine kostenlose Java Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Java Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Java Academy-Kurs umfasst insgesamt 4 Lektionen.
Über long hinaus
Der primitive Datentyp long kann Werte bis zu etwa 9,2 Trillionen speichern. Wenn Sie größere Ganzzahlen benötigen, bietet Java BigInteger aus dem Paket java.math; dieser Datentyp hat keine feste Obergrenze.
Wenn long überläuft
Wird Long.MAX_VALUE überschritten, läuft der Wert unbemerkt über und wird zu einer negativen Zahl. Diese Verfälschung ist eine klassische Fehlerquelle.
public class Main {
public static void main(String[] args) {
long max = Long.MAX_VALUE;
System.out.println(max);
System.out.println(max + 1);
}
}Ein BigInteger erstellen
Erstellen Sie ein BigInteger aus einer Ziffernfolge. Es gibt keine Längenbegrenzung, sodass Sie Zahlen schreiben können, die viel größer als jeder primitive Datentyp sind.
import java.math.BigInteger;
public class Main {
public static void main(String[] args) {
BigInteger huge = new BigInteger("123456789012345678901234567890");
System.out.println(huge);
}
}Aus einem long mit valueOf
Wenn Ihr Ausgangswert in ein long passt, ist BigInteger.valueOf eine praktische Factory-Methode.
import java.math.BigInteger;
public class Main {
public static void main(String[] args) {
BigInteger n = BigInteger.valueOf(1000000);
System.out.println(n);
}
}Unveränderliche Arithmetik
Wie BigDecimal ist auch BigInteger unveränderlich. add, subtract und multiply geben neue Objekte zurück, die Sie speichern müssen.
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));
}
}Große Zahlen multiplizieren
Eine Multiplikation, bei der ein long überlaufen würde, funktioniert mit BigInteger problemlos.
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));
}
}Eine Fakultät berechnen
Fakultäten wachsen sehr schnell. Selbst 30 Fakultät läuft bei einem long über, aber BigInteger verarbeitet diesen Wert problemlos.
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);
}
}Potenz und Modulo
pow potenziert einen Wert mit einem ganzzahligen Exponenten, und mod liefert den Rest. Beide Methoden werden häufig in der Kryptografie verwendet.
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)));
}
}Werte vergleichen
Verwenden Sie compareTo, um zwei BigInteger-Werte zu ordnen. Die Methode gibt eine negative Zahl, null oder eine positive Zahl zurück.
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));
}
}Praktische Konstanten
BigInteger stellt ZERO, ONE, TWO und TEN bereit. Verwenden Sie diese als Ausgangswerte für Akkumulatoren oder in Schleifen.
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);
}
}Wann Sie es verwenden sollten
Verwenden Sie BigInteger für Fakultäten, sehr große Zähler, kryptografische Schlüssel und überall dort, wo ein Ergebnis long überschreiten könnte. Für gewöhnliche Zählungen sollten Sie bei primitiven Datentypen bleiben, da diese deutlich schneller sind.
Kurzer Test
Testen Sie Ihr Verständnis von BigInteger.
Zusammenfassung
Sie haben gelernt, BigInteger zu verwenden:
longläuft unbemerkt über, aberBigIntegerhat keine feste Begrenzung- Erstellen Sie es aus einer Zeichenkette oder mit
valueOf - Es ist unveränderlich. Speichern Sie daher das Ergebnis jeder Operation
add,multiply,powundmoddecken häufige Berechnungen ab- Verwenden Sie es für Fakultäten, Kryptografie und jeden Wert, der größer als
longist
Häufig gestellte Fragen
Ist die Lektion „BigInteger für riesige Zahlen“ kostenlos?
Ja — der vollständige Text von „BigInteger für riesige Zahlen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Java Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Java Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „BigInteger für riesige Zahlen“?
Ganzzahlen mit beliebiger Präzision Du übst Java Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Java Academy zu starten?
Keine Vorkenntnisse erforderlich. Java Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.
Wie lange dauert die Lektion „BigInteger für riesige Zahlen“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Java Academy-Lektion Code schreiben und ausführen?
Ja. Jede Java Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Warum nicht double für Geldbeträge?
- Mit BigDecimal arbeiten
- Rundung und Scale
- BigInteger für riesige Zahlen