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

Der normale JavaScript-Typ Number ist eine Gleitkommazahl doppelter Genauigkeit nach IEEE 754, die ganze Zahlen nur bis 2^53 − 1 (9.007.199.254.740.991) sicher darstellen kann. Darüber hinaus lassen sich benachbarte ganze Zahlen nicht mehr unterscheiden, und Berechnungen verlieren an Genauigkeit. Dieses Tool umgeht diese Grenze vollständig, indem es den Typ BigInt verwendet.

Nein. BigInt ist als JavaScript-Typ bewusst nur für ganze Zahlen ausgelegt und kann keine Brüche darstellen. Für Berechnungen mit Dezimalstellen nutzen Sie bitte unseren gewöhnlichen Rechner.

Der Rest ergibt sich aus A − (Quotient × B), wobei der Quotient in Richtung null abgeschnitten wird. Zum Beispiel ergibt −7 ÷ 2 den Quotienten −3 und den Rest −1.

Er ist immer dann nützlich, wenn gewöhnliche Rechner nicht genau genug sind: zum Nachrechnen von RSA-Schlüsseloperationen (hunderte bis tausende Stellen), zur Berechnung großer Fakultäten oder zur Überprüfung von Berechnungen mit beliebiger Genauigkeit im Wettbewerbsprogrammieren.

Es gibt keine feste Obergrenze, aber der Arbeitsspeicher und die Rechengeschwindigkeit des Browsers setzen praktische Grenzen. Zahlen mit tausenden Stellen werden sofort berechnet; Extremfälle (etwa ein Exponent über 1.000.000) sind aus Sicherheitsgründen begrenzt.
ツールくん

Ü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.

→ Alle Wissenstexte ansehen