Java BigInteger

Java Biginteger



Java ofereix una classe especial BigInteger per gestionar nombres extremadament grans que superin els números de 64 bits. La mida dels valors enters que pot gestionar aquesta classe està limitada simplement per la memòria assignada de la JVM. La classe BigInteger, que hereta un Number.implementa la interfície Comparable. Ofereix equivalents per a cada operador d'enter primitiu de Java, així com per a tots els mètodes del mòdul java.lang.math. El valor emmagatzemat de l'objecte BigInteger no es pot modificar a causa de la immutabilitat de la classe BigInteger.

Exemple 1:

El programa següent proporciona una manera de crear el BigInteger en java i aplica l'operació aritmètica al valor BigInteger proporcionat.








Hem importat la classe BigInteger del paquet de matemàtiques java dins del programa. Després d'això, vam declarar els objectes BigInteger 'bigInt1' i 'bigInt2' al mètode main() de la classe java 'BigIntegerExample'. A continuació, vam inicialitzar els objectes BigInteger amb els valors numèrics grans dins de la classe BigInteger. Hem creat un altre objecte de la classe BigInteger per realitzar l'operació aritmètica sobre el valor sencer gran especificat. Els objectes es declaren com a 'Multiplicació' per multiplicar el valor BinInteger i 'Divisió' per dividir el valor BigInteger.



A continuació, vam assignar el 'bigInt1' juntament amb el mètode multiplicar () de BigInteger a l'objecte 'multiplicar', que pren l'entrada 'bigInt2'. A més, hem anomenat el mètode division(), que pren el paràmetre 'bigInt2' que es dividirà amb 'bigInt1' i imprimeix els resultats després de l'execució.



Els resultats de les operacions de multiplicació i divisió dels valors BigInteger es mostren a la imatge de sortida següent. Així és com el BigInteger es configura a Java i s'utilitza per a diverses operacions.





Exemple 2:

El càlcul factorial és una bona il·lustració d'un nombre enter que obté entrades molt grans. El BigInteger també es pot utilitzar per obtenir el factorial per a valors enters més grans.




Hem creat la funció 'factorial' de la classe BigInteger, on l'objecte 'num' de tipus int es passa com a argument per retornar el factorial del valor 'Num'. Dins de la funció 'factorial', hem declarat un objecte BigInteger 'max_fict' on s'especifica el valor BigInteger '2'. Després d'això, vam desplegar el bucle for, que repetirà i després multiplicarà el valor 'max_fict' amb 4, 5 i fins a l'enèsimo valor a mesura que s'invoqui el mètode multiply(). El propi multiplicar() s'anomena un altre mètode 'valueOf', on es proporciona l'objecte 'i' del bucle for. La declaració de retorn proporcionarà el factorial més gran. A continuació, hem establert el mètode main() del programa. Vam inicialitzar l'objecte 'Num' amb el valor i vam imprimir el factorial de 'Num' des del mètode factorial().

El valor factorial del nombre '40' proporciona el valor BigInteger de la manera següent:

Exemple 3:

La funció bitCount() de la classe BigInteger compta els bits. El mètode bitCount() proporciona el nombre de bits que tenen la forma de dos complements en aquest BigInteger i són diferents del bit de signe. Aquest mètode retorna els bits establerts quan el valor de BigInteger és positiu. D'altra banda, si el BigInteger s'especifica amb un valor negatiu, aquest mètode retorna el nombre de bits de restabliment.


Hem declarat dues variables, 'b1' i 'b2' de la classe de tipus 'BigInteger'. També hem definit dues variables més, 'enteger1' i 'enteger2', de tipus primitiu int. Després de la declaració, vam inicialitzar el 'b1' amb el valor BigInteger positiu i el 'b2' amb el valor BigInteger negatiu. A continuació, hem assignat 'enteger1' i 'enteger2' amb el mètode bitCount() a les variables BigInteger 'b1' i 'b2'. Els bits comptats s'obtindran del mètode bitCount() per als valors BigInteger especificats.

El BigInteger positiu proporciona els '2' bits, i el valor negatiu de BigInteger genera el valor de '1' bit.

Exemple 4:

El valor absolut de les dades numèriques de gran mida a BigInteger es pot determinar mitjançant el mètode abs() de la classe BigInteger. El mètode abs() retorna el valor absolut de BigInteger.


Tenim una classe BigInteger, a partir de la qual hem declarat quatre variables: 'big1', 'big2', 'big3' i 'big4'. Les variables 'big1' i 'big2' s'especifiquen amb valors positius i negatius, respectivament. Després d'això, vam invocar el mètode abs() amb 'big1' i 'big2' a les variables 'big3' i 'big4'. Tingueu en compte que el mètode abs() no pren cap valor d'entrada sinó que s'anomena amb les variables 'big1' i 'big2'. El mètode abs() obté el valor absolut d'aquestes variables BigInteger i els resultats s'imprimiran en el moment de la compilació.

El valor absolut dels valors positius 432 i negatius 432 és el mateix perquè el mètode abs() sempre retorna el valor absolut positiu.

Exemple 5:

La comparació dels valors de BigInteger es pot aconseguir mitjançant el mètode BigInteger compareTo(). El BigInteger es compara amb el BigInteger que s'introdueix com a paràmetre dins del mètode compareTo(). El valor de retorn del mètode compareTo() es basa en els valors BigInteger. Quan la comparació del valor BigInteger és igual, es retorna zero. En cas contrari, es retornen '1' i '-1' amb la condició que el valor de BigInteger sigui més gran o menor que el valor de BigInteger passat com a argument.


Tenim objectes 'MyBigInt1' i 'MyBigtInt2' declaració de la classe 'BigInteger'. A continuació, aquests objectes s'especifiquen amb els mateixos valors BigInteger. Després d'això, vam crear un altre objecte, 'comparevalue', on es crida l'objecte 'MyBigInt1' amb el mètode compareTo() i l'objecte 'MyBigInt2' es passa com a argument per comparar amb l'objecte 'MyBigInt2'. A continuació, tenim una instrucció if-else on hem comprovat si els resultats del mètode compareTo() són iguals al valor '0' o no.

Com que els dos objectes BigInteger tenen els mateixos valors, els resultats compareTo() tornen zero, tal com es mostra a la imatge següent.

Exemple 6:

El mètode BigInteger flipBit(index) també es pot utilitzar per girar en una ubicació de bit específica dins d'un BigInteger. Aquest mètode avalua (bigInt ^ (1<


Hem definit dues variables BigInteger, 'B_val1' i 'B_val2'. La variable 'B_val1' s'inicialitza amb la classe BigInteger, on s'especifica el valor. A continuació, hem establert la variable 'B_val2' amb el mètode flipBit(), on l'operació flipBit es realitza sobre la variable 'B_value' amb el valor d'índex '2'.

La posició de l'índex del valor de BigInteger '9' s'inverteix amb l'índex '2', que genera el valor '13' a la sortida.

Conclusió

La classe BigInteger és molt còmoda d'utilitzar i s'utilitza amb freqüència en programació competitiva a causa de la seva àmplia biblioteca de mètodes. El BigInteger s'utilitza per al càlcul de nombres molt llargs que van més enllà de la capacitat de tots els tipus de dades primitives actualment accessibles. Proporciona diversos mètodes per a operacions aritmètiques modulars. Primer vam crear el BigInteger i després vam cobrir alguns dels seus mètodes.