Großzahlen-Rechner|Exakte Addition, Subtraktion, Multiplikation und Potenz ohne Stellenlimit (BigInt)
Kostenloses Tool für exakte Berechnungen mit riesigen ganzen Zahlen ohne Rundungsfehler. Mit JavaScript BigInt werden Addition, Subtraktion, Multiplikation, Ganzzahldivision (Quotient und Rest) und Potenzen auch oberhalb von 9.007.199.254.740.991 (2^53 − 1) exakt berechnet.
Warum die Genauigkeit oberhalb von 2^53 versagt
Ein gewöhnlicher Taschenrechner oder der Number-Typ von JavaScript kann benachbarte ganze Zahlen oberhalb von 2^53 (Number.MAX_SAFE_INTEGER) nicht mehr unterscheiden. Mit BigInt lässt sich auch jenseits dieser Grenze exakt rechnen.
| Number.MAX_SAFE_INTEGER | 9,007,199,254,740,991(253 − 1) |
|---|---|
| 9007199254740992 + 1 | Number: 9007199254740992(誤り) / BigInt: 9007199254740993(正確) |
Tipps
- Gewöhnliche Taschenrechner und Tabellenkalkulationen verlieren oberhalb von 2^53 (rund 9 Billiarden) an Genauigkeit — dieses Tool nutzt BigInt und rechnet ohne Stellenlimit exakt.
- Bei der Ganzzahldivision (÷) werden Quotient und Rest gleichzeitig angezeigt, praktisch zum Nachrechnen von Modulo-Operationen aus Kryptographie und Hash-Funktionen.
- Der Exponent ist aus Sicherheitsgründen auf 1.000.000 begrenzt, da ein unbegrenzter Exponent den Browser einfrieren lassen könnte.
- Zahlen mit Tausendertrennzeichen (z. B.
1.234.567) können direkt eingefügt werden — sie werden vor der Berechnung automatisch entfernt. - Mit "Beispiel einfügen" wird automatisch ein Beispiel eingesetzt, das über 2^53 hinausgeht, sodass der Unterschied zu einem gewöhnlichen Rechner sofort sichtbar wird.
Häufig gestellte Fragen
Übrigens – Warum Computer mit riesigen Zahlen zu kämpfen haben
Die Zahlendarstellung in Computern hatte lange eine feste Grenze. Der standardmäßig in den meisten Programmiersprachen verwendete 64-Bit-Gleitkommatyp (doppelte Genauigkeit) kann ganze Zahlen nur bis 2^53 − 1 (9.007.199.254.740.991) sicher darstellen, da seine Mantisse lediglich 53 Bit umfasst. Darüber hinaus entstehen bei der Darstellung solcher ganzen Zahlen Rundungsfehler. Auch unser eigenes Rechner-Tool unterliegt genau dieser Genauigkeitsgrenze.
Ganze Zahlen mit beliebiger Genauigkeit (sogenannte "Bignums") lösen dieses Problem. Um 2020 herum führte JavaScript den neuen Typ BigInt in allen wichtigen Browsern ein, mit dem exakte Ganzzahlarithmetik ohne Stellenlimit — begrenzt nur durch den verfügbaren Speicher — möglich ist. Intern wird eine Bignum als Folge von Ziffernblöcken gespeichert, sodass die Rechenzeit mit der Stellenzahl wächst — ein echter Kompromiss zwischen Exaktheit und Geschwindigkeit.
Diese Technik ist auch in der Kryptographie unverzichtbar. RSA-Schlüssel etwa verwenden häufig 2048-Bit-Zahlen (über 600 Dezimalstellen), und weltweit werden Bibliotheken für beliebige Genauigkeit eingesetzt, um die dafür nötigen Multiplikationen und modularen Potenzierungen korrekt auszuführen.
Auch im Wettbewerbsprogrammieren kommen häufig riesige Fakultäten (100! hat 158 Stellen) oder weit entfernte Glieder der Fibonacci-Folge vor. Gewöhnliche Zahlentypen sammeln dabei mitten in der Berechnung Fehler an, weshalb der sichere Umgang mit Bignums oft über richtig oder falsch entscheidet.