Java BigInteger

Java Biginteger



Java erbjuder en speciell BigInteger-klass för att hantera extremt stora tal som är större än 64-bitars tal. Storleken på heltalsvärdena som denna klass kan hantera begränsas helt enkelt av JVM:s allokerade minne. Klassen BigInteger, som ärver ett Number.implementerar gränssnittet Comparable. Det ger motsvarigheter för varje primitiv heltalsoperator för Java såväl som varje metod från java.lang.math-modulen. BigInteger-objektets lagrade värde kan inte ändras på grund av BigInteger-klassens oföränderlighet.

Exempel 1:

Följande program tillhandahåller ett sätt att skapa BigInteger i java och tillämpar den aritmetiska operationen på det angivna BigInteger-värdet.








Vi har importerat BigInteger-klassen från Java-mattepaketet inuti programmet. Efter det deklarerade vi BigInteger-objekten 'bigInt1' och 'bigInt2' i main()-metoden för java-klassen 'BigIntegerExample.' Därefter initierade vi BigInteger-objekten med de stora numeriska värdena inom BigInteger-klassen. Vi har skapat ett annat objekt av klassen BigInteger för att utföra den aritmetiska operationen på det angivna stora heltalsvärdet. Objekten deklareras som 'Multiplication' för att multiplicera BinInteger-värdet och 'Division' för att dividera BigInteger-värdet.



Sedan tilldelade vi 'bigInt1' tillsammans med multiply()-metoden för BigInteger till objektet 'multiply', som tar ingången 'bigInt2.' Vi har också kallat division()-metoden, som tar parametern 'bigInt2' som kommer att delas med 'bigInt1' och skriver ut resultaten efter exekvering.



Resultaten för multiplikation och division för BigInteger-värdena visas i följande utdatabild. Så här konfigureras BigInteger i java och används för olika operationer.





Exempel 2:

Faktoriell beräkning är en bra illustration av ett heltal som får mycket stora indata. BigInteger kan också användas för att få faktorial för större heltalsvärden.




Vi har skapat den 'faktoriella' funktionen för klassen BigInteger, där objektet 'num' av typen int skickas som ett argument för att returnera faktorn för värdet 'Num.' Inuti funktionen 'faktoriell' har vi deklarerat ett BigInteger-objekt 'max_fict' där BigInteger-värdet '2' anges. Efter det distribuerade vi for-loopen, som kommer att iterera och sedan multiplicera 'max_fict'-värdet med 4, 5 och upp till det n:te värdet när multiply()-metoden anropas. Själva multiply() kallas en annan 'valueOf'-metod, där objektet 'i' för for-loopen tillhandahålls. Returutlåtandet kommer att tillhandahålla den större faktorn. Därefter har vi etablerat programmets main()-metod. Vi initierade objektet 'Num' med värdet och skrev ut factorialen för 'Num' från factorial()-metoden.

Faktorvärdet för talet '40' ger BigInteger-värdet enligt följande:

Exempel 3:

BitCount()-funktionen i klassen BigInteger räknar bitarna. Metoden bitCount() tillhandahåller antalet bitar som är i form av två komplement i detta BigInteger och som skiljer sig från teckenbiten. Den här metoden returnerar de inställda bitarna när BigInteger-värdet är positivt. Å andra sidan, om BigInteger anges med ett negativt värde, returnerar denna metod antalet återställningsbitar.


Vi har deklarerat två variabler, 'b1' och 'b2' av typklassen 'BigInteger.' Vi har också definierat ytterligare två variabler, 'heltal1' och 'heltal2', int primitiv typ. Efter deklarationen initierade vi 'b1' med det positiva BigInteger-värdet och 'b2' med det negativa BigInteger-värdet. Därefter har vi tilldelat 'integer1' och 'integer2' med metoden bitCount() till BigInteger-variablerna 'b1' och 'b2.' De räknade bitarna kommer att erhållas från metoden bitCount() för de angivna BigInteger-värdena.

Det positiva BigInteger ger '2'-bitarna, och det negativa värdet för BigInteger matar ut '1'-bitvärdet.

Exempel 4:

Det absoluta värdet av stora numeriska data i BigInteger kan bestämmas genom att använda abs()-metoden i BigInteger-klassen. Metoden abs() returnerar BigIntegers absoluta värde.


Vi har en BigInteger-klass, från vilken vi har deklarerat fyra variabler: 'big1', 'big2', 'big3' och 'big4'. Variablerna 'big1' och 'big2' anges med positiva respektive negativa värden. Efter det anropade vi abs()-metoden med 'big1' och 'big2' i variablerna 'big3' och 'big4'. Observera att abs()-metoden inte tar något indatavärde utan anropas med variablerna 'big1' och 'big2'. Abs()-metoden får det absoluta värdet för dessa BigInteger-variabler, och resultaten kommer att skrivas ut vid kompileringstillfället.

Det absoluta värdet för positiva 432 och negativa 432 värden är detsamma eftersom abs()-metoden alltid returnerar det positiva absolutvärdet.

Exempel 5:

Jämförelsen av BigInteger-värdena kan uppnås med metoden BigInteger compareTo() . BigInteger jämförs med BigInteger som matas in som en parameter i compareTo()-metoden. Returvärdet för metoden compareTo() baseras på BigInteger-värdena. När jämförelsen av BigInteger-värdet är lika, returneras noll. Annars returneras '1' och '-1' under förutsättning att BigInteger-värdet är större än eller mindre än BigInteger-värdet som skickas som ett argument.


Vi har objekt 'MyBigInt1' och 'MyBigtInt2' deklaration av klassen 'BigInteger.' Dessa objekt specificeras sedan med samma BigInteger-värden. Efter det skapade vi ett annat objekt, 'comparevalue' där 'MyBigInt1'-objektet anropas med metoden compareTo() och 'MyBigInt2'-objektet skickas som ett argument för att jämföra med 'MyBigInt2'-objektet. Därefter har vi en if-else-sats där vi har kontrollerat om resultaten av compareTo()-metoden är lika med värdet '0' eller inte.

Eftersom båda BigInteger-objekten har samma värden, returnerar resultaten compareTo() noll, som visas i bilden nedan.

Exempel 6:

Metoden BigInteger flipBit(index) kan också användas för att vända på en specifik bitplats i ett BigInteger. Denna metod utvärderar (bigInt ^ (1<


Vi har definierat två BigInteger-variabler, 'B_val1' och 'B_val2.' Variabeln 'B_val1' initieras med klassen BigInteger, där värdet anges. Sedan har vi ställt in variabeln 'B_val2' med metoden flipBit() där flipBit-operationen utförs på variabeln 'B_value' med indexvärdet '2.'

Indexpositionen för BigInteger-värdet '9' vänds med indexet '2', som matar ut värdet '13' i utgången.

Slutsats

Klassen BigInteger är mycket bekväm att använda och används ofta i konkurrenskraftig programmering på grund av dess stora metodbibliotek. BigInteger används för beräkning av mycket långa tal som går utöver kapaciteten för alla för närvarande tillgängliga primitiva datatyper. Den tillhandahåller olika metoder för modulära aritmetiska operationer. Vi skapade BigInteger först och täckte sedan några av dess metoder.