BigInteger ist eine Klasse in der Programmiersprache Java, die die Möglichkeit bietet, mit ganzen Zahlen beliebiger Länge zu arbeiten. Es ist sehr praktisch, wenn Sie mit großen Zahlen arbeiten, die nicht in einen Bereich des int-Datentyps passen. Manchmal ist es notwendig, ein BigInteger-Objekt in ein int zu konvertieren, um eine kompaktere Darstellung einer Zahl zu erhalten und sie weiter im Programm zu verwenden.
Es gibt mehrere Möglichkeiten, einen BigInteger in einen int zu konvertieren. Der erste und einfachste Weg besteht darin, die intValue() -Methode zu verwenden, die den BigInteger-Wert als primitiven int-Typ zurückgibt. Beachten Sie jedoch, dass bei Verwendung dieser Methode ein Genauigkeitsverlust auftritt, wenn eine BigInteger-Zahl nicht als int dargestellt werden kann (z. B. eine Zahl größer als der maximale int-Wert).
Die zweite Möglichkeit besteht darin, die BigInteger-Methode zu verwenden.intValueExact(), das keine Genauigkeit verliert und eine ArithmeticException auslöst, wenn die BigInteger-Zahl nicht exakt als int dargestellt werden kann. Diese Methode wird empfohlen, wenn die Genauigkeit einer Zahl im Programm eine wichtige Rolle spielt.
Im Folgenden sind Beispiele für die Verwendung beider Methoden aufgeführt:
import java.math.BigInteger;public class BigIntegerToIntExample catch (ArithmeticException e) >>
Dadurch wird der Code ausgegeben:
intValue: 1234567890intValueExact: 1234567890
Daher kann die Konvertierung von BigInteger in int mit den Methoden intValue() und intValueExact() durchgeführt werden. Beachten Sie dabei den Verlust der Genauigkeit bei der ersten Methode sowie eine mögliche Ausnahme bei der zweiten Methode, wenn die BigInteger-Zahl nicht exakt als int dargestellt werden kann.
Konvertieren von BigInteger in int
Es gibt mehrere Möglichkeiten, einen BigInteger in einen int zu konvertieren:
Methode intValue(): Mit dieser Methode können Sie den BigInteger-Wert als primitiven int-Typ abrufen. Wenn ein BigInteger-Wert aufgrund von Bereichseinschränkungen nicht als int dargestellt werden kann, gibt die intValue() -Methode einen der speziellen Integer-Werte zurück.MIN_VALUE oder Integer.MAX_VALUE.
Ein Beispiel:
BigInteger bigInteger = new BigInteger("123456789123456789"); int integerValue = bigInteger.intValue(); System.out.println(integerValue);
Die Methode toString() und parseInt(): Sie können BigInteger mithilfe der toString() -Methode in eine Zeichenfolge konvertieren und diese Zeichenfolge dann mithilfe der parseInt() -Methode der Integer-Klasse in int konvertieren.
Ein Beispiel:
BigInteger bigInteger = new BigInteger("987654321987654321"); int integerValue = Integer.parseInt(bigInteger.toString()); System.out.println(integerValue);
Wenn ein BigInteger in ein int konvertiert wird, kann es zu einem Genauigkeitsverlust oder einem Überlauf kommen. Es ist wichtig, beim Umgang mit solchen Zahlen vorsichtig zu sein und mögliche Fehler zu berücksichtigen.
Methoden zum Konvertieren von biginteger in int
In Java gibt es mehrere Möglichkeiten, ein BigInteger-Objekt in einen primitiven int-Datentyp zu konvertieren.
1. Methode intValue():
BigInteger hat eine intValue() -Methode, die den BigInteger-Wert als int zurückgibt. Wenn der BigInteger-Wert den maximalen int-Wert überschreitet oder kleiner als der minimale int-Wert ist, wird das Ergebnis auf den nächsten Grenzwert abgeschnitten.
BigInteger bigInteger = new BigInteger("1234567890");int intValue = bigInteger.intValue();System.out.println(intValue);
2. Die toString() -Methode, gefolgt von der Konvertierung in int:
Sie können BigInteger mithilfe der toString() -Methode in eine Zeichenfolge konvertieren und diese Zeichenfolge dann mithilfe der Integer-Methode in int konvertieren.parseInt().
BigInteger bigInteger = new BigInteger("9876543210");String strValue = bigInteger.toString();int intValue = Integer.parseInt(strValue);System.out.println(intValue);
3. Die longValue() -Methode mit int-Umwandlung:
BigInteger hat auch eine longValue() -Methode, die den BigInteger-Wert als long zurückgibt. Es ist dann möglich, long mit dem Typumwandlungsoperator in int zu bringen.
BigInteger bigInteger = new BigInteger("9876543210");long longValue = bigInteger.longValue();int intValue = (int) longValue;System.out.println(intValue);
Dies sind einige der möglichen Methoden, um BigInteger in Java in int zu konvertieren. Die Auswahl der Methode hängt von der spezifischen Aufgabe und den Anforderungen des Projekts ab.
Beispiele für die Konvertierung von BigInteger in int
Die Konvertierung eines BigInteger-Objekts in einen primitiven int-Typ kann in verschiedenen Situationen erforderlich sein, z. B. beim Ausführen von arithmetischen Operationen, beim Vergleichen von Zahlen oder bei der Verwendung in einer Schleife.
Sie können die intValue() - oder intValueExact() -Methoden verwenden, um den Wert eines BigInteger-Objekts in ein int zu konvertieren.
Die intValue() -Methode gibt den ungefähren Wert eines BigInteger-Objekts im int-Typ zurück. Wenn der Wert des BigInteger-Objekts den Bereich von int-Werten überschreitet, gibt die intValue() -Methode ein Ergebnis zurück, das auf einen Bereich von int-Werten abgeschnitten ist.
BigInteger bigInteger = new BigInteger("1234567890");
int intValue = bigInteger.intValue();
Die intValueExact() -Methode gibt den Wert eines BigInteger-Objekts vom Typ int zurück, wenn der Wert des ursprünglichen BigInteger-Objekts genau dem Wertebereich des Typs int entspricht. Wenn der Wert des BigInteger-Objekts außerhalb des Bereichs von int-Werten liegt, löst die intValueExact() -Methode eine ArithmeticException aus.
BigInteger bigInteger = new BigInteger("1234567890");
int intValueExact = bigInteger.intValueExact();
Beachten Sie, dass die Konvertierung des Werts eines BigInteger-Objekts in einen int-Typ zu einem Genauigkeitsverlust führen kann, da der int-Typ einen begrenzten Wertebereich aufweist.
Wenn die Genauigkeit des BigInteger-Werts von entscheidender Bedeutung ist, wird empfohlen, die Konvertierung mit der Methode longValue() oder longValueExact() in den Typ long zu verwenden.
Wann muss BigInteger in int konvertiert werden
- Wenn Sie ganzzahlige Operationen oder Funktionen verwenden möchten, die nur den int-Typ unterstützen.
- Wenn die Größe einer Zahl garantiert in einen Wertebereich vom Typ int passt und es nicht notwendig ist, mit großen Zahlen zu arbeiten.
- Wenn ein BigInteger-Wert als Argument an eine Methode oder Funktion übergeben werden muss, die einen int-Typ erwartet.
- Wenn Sie Speicher speichern oder einen Algorithmus vereinfachen möchten, der mit Zahlen arbeitet, reduziert die Konvertierung in einen int-Typ daher den verwendeten Speicher und beschleunigt die Programmausführung.
Sie können BigInteger abhängig vom erwarteten Typ mit den Methoden intValue(), byteValue(), shortValue() oder longValue() in int konvertieren. Beachten Sie jedoch, dass bei der Konvertierung von BigInteger in int ein Genauigkeitsverlust auftreten kann, wenn die Zahl nicht in den Wertebereich des Typs int passt.