Java BigInteger

Java Biginteger



Java tilbyder en særlig BigInteger-klasse til håndtering af ekstremt store tal, der er større end 64-bit tal. Størrelsen af ​​de heltalsværdier, som denne klasse kan håndtere, er simpelthen begrænset af JVM'ens allokerede hukommelse. BigInteger-klassen, som arver et Number.implementerer Comparable-grænsefladen. Det giver ækvivalenter for hver primitiv Java-heltalsoperator såvel som enhver metode fra java.lang.math-modulet. BigInteger-objektets lagrede værdi kan ikke ændres på grund af BigInteger-klassens uforanderlighed.

Eksempel 1:

Følgende program giver en måde at oprette BigInteger i java og anvender den aritmetiske operation på den angivne BigInteger-værdi.








Vi har importeret BigInteger-klassen fra Java-matematikpakken inde i programmet. Derefter erklærede vi BigInteger-objekterne 'bigInt1' og 'bigInt2' i main()-metoden i java-klassen 'BigIntegerExample.' Dernæst initialiserede vi BigInteger-objekterne med de store numeriske værdier i BigInteger-klassen. Vi har oprettet et andet objekt af BigInteger-klassen til at udføre den aritmetiske operation på den angivne store heltalsværdi. Objekterne erklæres som 'Multiplication' for at gange BinInteger-værdien og 'Division' for at dividere BigInteger-værdien.



Derefter tildelte vi 'bigInt1' sammen med multiply()-metoden for BigInteger til objektet 'multiply', som tager inputtet 'bigInt2.' Vi har også kaldt division()-metoden, som tager parameteren 'bigInt2', som vil blive divideret med 'bigInt1', og udskriver resultaterne efter udførelse.



Multiplikations- og divisionsoperationsresultaterne på BigInteger-værdierne er vist i følgende outputbillede. Sådan konfigureres BigInteger i java og bruges til forskellige operationer.





Eksempel 2:

Faktoriel beregning er en god illustration af et heltal, der får meget store input. BigInteger kan også bruges til at få factorialet for større heltalsværdier.




Vi har oprettet 'factorial'-funktionen af ​​BigInteger-klassen, hvor 'num'-objektet af typen int sendes som et argument for at returnere factorialet af værdien 'Num.' Inde i funktionen 'faktoriel' har vi erklæret et BigInteger-objekt 'max_fict', hvor BigInteger-værdien '2' er angivet. Derefter implementerede vi for-løkken, som vil iterere og derefter gange 'max_fict'-værdien med 4, 5 og op til den n'te værdi, når multiply()-metoden påkaldes. Selve multiply() kaldes en anden 'valueOf'-metode, hvor objektet 'i' for for-løkken er angivet. Afkasterklæringen vil give den større faktor. Dernæst har vi etableret programmets main() metode. Vi initialiserede objektet 'Num' med værdien og udskrev factorialet for 'Num' fra factorial()-metoden.

Faktorværdien af ​​tallet '40' giver BigInteger-værdien som følger:

Eksempel 3:

BitCount()-funktionen i BigInteger-klassen tæller bitsene. BitCount()-metoden giver antallet af bits, der er i form af to komplementer i dette BigInteger og er forskellige fra fortegnsbitten. Denne metode returnerer de indstillede bits, når BigInteger-værdien er positiv. På den anden side, hvis BigInteger er angivet med en negativ værdi, returnerer denne metode antallet af nulstillede bits.


Vi har erklæret to variable, 'b1' og 'b2' af typen 'BigInteger'. Vi har også defineret yderligere to variable, 'heltal1' og 'heltal2', int primitiv type. Efter erklæringen initialiserede vi 'b1' med den positive BigInteger-værdi og 'b2' med den negative BigInteger-værdi. Dernæst har vi tildelt 'integer1' og 'integer2' med bitCount()-metoden til BigInteger-variablerne 'b1' og 'b2.' De talte bits vil blive hentet fra bitCount()-metoden for de angivne BigInteger-værdier.

Det positive BigInteger giver '2' bits, og den negative værdi af BigInteger udsender '1' bitværdien.

Eksempel 4:

Den absolutte værdi af store numeriske data i BigInteger kan bestemmes ved at bruge abs()-metoden i BigInteger-klassen. Abs()-metoden returnerer BigInteger's absolutte værdi.


Vi har en BigInteger-klasse, hvorfra vi har erklæret fire variabler: 'big1', 'big2', 'big3' og 'big4'. Variablerne 'big1' og 'big2' er angivet med henholdsvis positive og negative værdier. Derefter påkaldte vi abs()-metoden med 'big1' og 'big2' i variablerne 'big3' og 'big4'. Bemærk, at abs()-metoden ikke tager nogen inputværdi, men kaldes med variablerne 'big1' og 'big2'. Abs()-metoden får den absolutte værdi for disse BigInteger-variabler, og resultaterne vil blive udskrevet på kompileringstidspunktet.

Den absolutte værdi af positive 432 og negative 432 værdier er den samme, fordi abs() metoden altid returnerer den positive absolutte værdi.

Eksempel 5:

Sammenligningen af ​​BigInteger-værdierne kan opnås ved hjælp af BigInteger compareTo()-metoden. BigInteger sammenlignes med BigInteger, der indtastes som en parameter i compareTo()-metoden. Returværdien af ​​compareTo()-metoden er baseret på BigInteger-værdierne. Når sammenligningen af ​​BigInteger-værdien er lig, returneres nul. Ellers returneres '1' og '-1' på betingelse af, at BigInteger-værdien er større end eller mindre end BigInteger-værdien, der sendes som et argument.


Vi har objekter 'MyBigInt1' og 'MyBigtInt2' erklæring af klassen 'BigInteger.' Disse objekter angives derefter med de samme BigInteger-værdier. Derefter oprettede vi et andet objekt, 'comparevalue', hvor 'MyBigInt1'-objektet kaldes med compareTo()-metoden, og 'MyBigInt2'-objektet sendes som et argument for at sammenligne med 'MyBigInt2'-objektet. Dernæst har vi en if-else-sætning, hvor vi har tjekket, om resultaterne af compareTo()-metoden er lig med værdien '0' eller ej.

Fordi begge BigInteger-objekter har de samme værdier, returnerer compareTo()-resultaterne nul, som vist på billedet nedenfor.

Eksempel 6:

BigInteger flipBit(index)-metoden kan også bruges til at vende på en bestemt bitplacering i et BigInteger. Denne metode evaluerer (bigInt ^ (1<


Vi har defineret to BigInteger-variabler, 'B_val1' og 'B_val2.' Variablen 'B_val1' initialiseres med BigInteger-klassen, hvor værdien er angivet. Derefter har vi indstillet variablen 'B_val2' med flipBit()-metoden, hvor flipBit-operationen udføres på variablen 'B_value' med indeksværdien '2.'

Indekspositionen for BigInteger-værdien '9' vendes med indekset '2', som udsender værdien '13' i outputtet.

Konklusion

BigInteger-klassen er meget praktisk at bruge og bruges ofte i konkurrencepræget programmering på grund af dets store metodebibliotek. BigInteger bruges til beregning af meget lange tal, der går ud over kapaciteten af ​​alle aktuelt tilgængelige primitive datatyper. Det giver forskellige metoder til modulære aritmetiske operationer. Vi oprettede først BigInteger og dækkede derefter et par af dets metoder.