Java BigInteger

Java Biginteger



Java bietet eine spezielle BigInteger-Klasse zum Verwalten extrem großer Zahlen, die größer als 64-Bit-Zahlen sind. Die Größe der Ganzzahlwerte, die diese Klasse verarbeiten kann, wird einfach durch den zugewiesenen Speicher der JVM eingeschränkt. Die BigInteger-Klasse, die eine Number erbt, implementiert die Comparable-Schnittstelle. Es gibt Äquivalente für jeden primitiven Java-Ganzzahloperator sowie für jede Methode aus dem java.lang.math-Modul. Der gespeicherte Wert des BigInteger-Objekts kann aufgrund der Unveränderlichkeit der BigInteger-Klasse nicht geändert werden.

Beispiel 1:

Das folgende Programm bietet eine Möglichkeit, BigInteger in Java zu erstellen und die arithmetische Operation auf den bereitgestellten BigInteger-Wert anzuwenden.








Wir haben die BigInteger-Klasse aus dem Java-Mathematikpaket in das Programm importiert. Danach haben wir die BigInteger-Objekte „bigInt1“ und „bigInt2“ in der main()-Methode der Java-Klasse „BigIntegerExample“ deklariert. Als Nächstes haben wir die BigInteger-Objekte mit den großen numerischen Werten innerhalb der BigInteger-Klasse initialisiert. Wir haben ein weiteres Objekt der BigInteger-Klasse erstellt, um die arithmetische Operation mit dem angegebenen großen ganzzahligen Wert auszuführen. Die Objekte sind als „Multiplication“ zum Multiplizieren des BinInteger-Werts und „Division“ zum Dividieren des BigInteger-Werts deklariert.



Dann haben wir „bigInt1“ zusammen mit der multiply()-Methode von BigInteger dem Objekt „multiply“ zugewiesen, das die Eingabe „bigInt2“ entgegennimmt. Außerdem haben wir die Methode division() aufgerufen, die den Parameter „bigInt2“ übernimmt, der durch „bigInt1“ dividiert wird, und die Ergebnisse nach der Ausführung ausgibt.



Die Ergebnisse der Multiplikations- und Divisionsoperation für die BigInteger-Werte sind im folgenden Ausgabebild dargestellt. So wird BigInteger in Java konfiguriert und für verschiedene Operationen verwendet.





Beispiel 2:

Die faktorielle Berechnung ist ein gutes Beispiel dafür, wie eine ganze Zahl sehr große Eingaben erhält. Der BigInteger kann auch verwendet werden, um die Fakultät für größere ganzzahlige Werte zu erhalten.




Wir haben die „Factorial“-Funktion der BigInteger-Klasse erstellt, bei der das „num“-Objekt vom Typ int als Argument übergeben wird, um die Fakultät des Werts „Num“ zurückzugeben. Innerhalb der „Factorial“-Funktion haben wir ein BigInteger-Objekt „max_fict“ deklariert, in dem der BigInteger-Wert „2“ angegeben ist. Danach haben wir die for-Schleife bereitgestellt, die den „max_fict“-Wert iteriert und dann mit 4, 5 und bis zum n-ten Wert multipliziert, wenn die multiply()-Methode aufgerufen wird. Die multiply() selbst wird als eine weitere „valueOf“-Methode bezeichnet, bei der das Objekt „i“ der for-Schleife bereitgestellt wird. Die return-Anweisung liefert die größere Fakultät. Als nächstes haben wir die Methode main() des Programms eingerichtet. Wir haben das Objekt „Num“ mit dem Wert initialisiert und die Fakultät der „Num“ aus der Methode factorial() ausgegeben.

Der Fakultätswert der Zahl „40“ liefert den BigInteger-Wert wie folgt:

Beispiel 3:

Die Funktion bitCount() der Klasse BigInteger zählt die Bits. Die Methode bitCount() liefert die Anzahl der Bits, die in diesem BigInteger als Zweierkomplement vorliegen und sich vom Vorzeichenbit unterscheiden. Diese Methode gibt die gesetzten Bits zurück, wenn der Wert von BigInteger positiv ist. Wenn BigInteger dagegen mit einem negativen Wert angegeben wird, gibt diese Methode die Anzahl der zurückgesetzten Bits zurück.


Wir haben zwei Variablen „b1“ und „b2“ der Typklasse „BigInteger“ deklariert. Wir haben auch zwei weitere Variablen definiert, „integer1“ und „integer2“, vom primitiven Typ int. Nach der Deklaration haben wir „b1“ mit dem positiven BigInteger-Wert und „b2“ mit dem negativen BigInteger-Wert initialisiert. Als nächstes haben wir den BigInteger-Variablen „b1“ und „b2“ die „integer1“ und „integer2“ mit der bitCount()-Methode zugewiesen. Die gezählten Bits werden von der Methode bitCount() für die angegebenen BigInteger-Werte abgerufen.

Der positive BigInteger liefert die „2“-Bits und der negative Wert von BigInteger gibt den „1“-Bitwert aus.

Beispiel 4:

Der Absolutwert umfangreicher numerischer Daten in BigInteger kann mit der abs()-Methode der BigInteger-Klasse bestimmt werden. Die Methode abs() gibt den absoluten Wert von BigInteger zurück.


Wir haben eine BigInteger-Klasse, von der wir vier Variablen deklariert haben: „big1“, „big2“, „big3“ und „big4“. Die Variablen „big1“ und „big2“ werden mit positiven bzw. negativen Werten angegeben. Danach haben wir die Methode abs() mit „big1“ und „big2“ in den Variablen „big3“ und „big4“ aufgerufen. Beachten Sie, dass die Methode abs() keinen Eingabewert entgegennimmt, sondern mit den Variablen „big1“ und „big2“ aufgerufen wird. Die abs()-Methode ruft den absoluten Wert für diese BigInteger-Variablen ab, und die Ergebnisse werden zur Kompilierungszeit gedruckt.

Der Absolutwert von positiven 432 und negativen 432 Werten ist derselbe, da die Methode abs() immer den positiven Absolutwert zurückgibt.

Beispiel 5:

Der Vergleich der BigInteger-Werte kann mit der BigInteger-comparateTo()-Methode erreicht werden. Der BigInteger wird mit dem BigInteger verglichen, der als Parameter innerhalb der Methode CompareTo() eingegeben wird. Der Rückgabewert der Methode CompareTo() basiert auf den BigInteger-Werten. Wenn der Vergleich des BigInteger-Werts gleich ist, wird Null zurückgegeben. Andernfalls werden „1“ und „-1“ unter der Bedingung zurückgegeben, dass der BigInteger-Wert größer oder kleiner als der als Argument übergebene BigInteger-Wert ist.


Wir haben die Deklaration der Objekte „MyBigInt1“ und „MyBigtInt2“ der Klasse „BigInteger“. Diese Objekte werden dann mit denselben BigInteger-Werten angegeben. Danach haben wir ein weiteres Objekt „comparevalue“ erstellt, bei dem das Objekt „MyBigInt1“ mit der Methode CompareTo() aufgerufen wird und das Objekt „MyBigInt2“ als Argument zum Vergleich mit dem Objekt „MyBigInt2“ übergeben wird. Als nächstes haben wir eine if-else-Anweisung, in der wir überprüft haben, ob die Ergebnisse der Methode CompareTo() gleich dem Wert „0“ sind oder nicht.

Da beide BigInteger-Objekte dieselben Werte haben, geben die Ergebnisse von CompareTo() Null zurück, wie in der Abbildung unten gezeigt.

Beispiel 6:

Die BigInteger flipBit(index)-Methode kann auch verwendet werden, um an einer bestimmten Bitposition innerhalb einer BigInteger umzukehren. Diese Methode wertet (bigInt ^ (1<


Wir haben zwei BigInteger-Variablen definiert, „B_val1“ und „B_val2“. Die Variable „B_val1“ wird mit der BigInteger-Klasse initialisiert, in der der Wert angegeben wird. Dann haben wir die Variable „B_val2“ mit der Methode flipBit() gesetzt, wobei die flipBit-Operation auf die Variable „B_value“ mit dem Indexwert „2“ ausgeführt wird.

Die Indexposition des BigInteger-Werts „9“ wird mit dem Index „2“ gespiegelt, wodurch der Wert „13“ in der Ausgabe ausgegeben wird.

Fazit

Die BigInteger-Klasse ist sehr bequem zu verwenden und wird aufgrund ihrer umfangreichen Methodenbibliothek häufig in der Konkurrenzprogrammierung verwendet. Der BigInteger wird zur Berechnung sehr langer Zahlen verwendet, die die Kapazität aller derzeit zugänglichen primitiven Datentypen sprengen. Es bietet verschiedene Methoden für modulare arithmetische Operationen. Wir haben zuerst BigInteger erstellt und dann einige seiner Methoden behandelt.