Java BigInteger

Java Biginteger



Java piedāvā īpašu BigInteger klasi, lai pārvaldītu ārkārtīgi lielus skaitļus, kas ir lielāki par 64 bitu skaitļiem. Veselo skaitļu vērtību lielumu, ko šī klase var apstrādāt, vienkārši ierobežo JVM piešķirtā atmiņa. BigInteger klase, kas manto Number.ievieš saskarni Comparable. Tas dod ekvivalentus katram Java primitīvam veselam skaitļa operatoram, kā arī katrai metodei no moduļa java.lang.math. BigInteger objekta saglabāto vērtību nevar mainīt BigInteger klases nemainīguma dēļ.

1. piemērs:

Šī programma nodrošina veidu, kā izveidot BigInteger Java un piemēro aritmētisko darbību norādītajai BigInteger vērtībai.








Mēs esam importējuši BigInteger klasi no java matemātikas pakotnes programmā. Pēc tam mēs deklarējām BigInteger objektus “bigInt1” un “bigInt2” java klases “BigIntegerExample” galvenajā () metodē. Pēc tam mēs inicializējām BigInteger objektus ar lielām skaitliskām vērtībām BigInteger klasē. Mēs esam izveidojuši vēl vienu BigInteger klases objektu aritmētiskās darbības veikšanai ar norādīto lielo veselo skaitļa vērtību. Objekti tiek deklarēti kā “Reizināšana” BinInteger vērtības reizināšanai un “Dalīšana”, lai dalītu BigInteger vērtību.



Pēc tam objektam “reizināt” mēs piešķīrām “bigInt1” kopā ar BigInteger reizināšanas () metodi, kas izmanto ievadi “bigInt2”. Mēs esam arī izsaukuši division () metodi, kas ņem parametru “bigInt2”, kas tiks sadalīts ar “bigInt1”, un pēc izpildes izdrukā rezultātus.



Reizināšanas un dalīšanas darbības rezultāti ar BigInteger vērtībām ir parādīti nākamajā izvades attēlā. Šādi BigInteger tiek konfigurēts Java un tiek izmantots dažādām darbībām.





2. piemērs:

Faktoru aprēķins ir labs piemērs tam, ka vesels skaitlis saņem ļoti lielus ievades datus. BigInteger var izmantot arī, lai iegūtu faktoriālu lielākām veselu skaitļu vērtībām.




Mēs esam izveidojuši BigInteger klases funkciju “faktoriāls”, kurā int tipa objekts “num” tiek nodots kā arguments, lai atgrieztu faktoriālu ar vērtību “Num”. Funkcijā “factorial” mēs esam deklarējuši BigInteger objektu “max_fict”, kur ir norādīta BigInteger vērtība “2”. Pēc tam mēs izvietojām for-cilpu, kas atkārtos un pēc tam reizina “max_fict” vērtību ar 4, 5 un līdz n-tajai vērtībai, kad tiek izsaukta reizināšanas () metode. Pati reizināt () sauc par citu 'valueOf' metodi, kur tiek nodrošināts for-cilpas objekts 'i'. Atgriešanas paziņojums nodrošinās lielāku faktoriālu. Tālāk mēs esam izveidojuši programmas galveno () metodi. Mēs inicializējām objektu “Num” ar vērtību un izdrukājām “Num” faktoriālu no faktoriāla () metodes.

Skaitļa “40” faktoriālā vērtība nodrošina BigInteger vērtību šādi:

3. piemērs:

BigInteger klases funkcija bitCount() skaita bitus. Metode bitCount() nodrošina bitu skaitu, kas šajā BigInteger ir divu papildinājumu formā un atšķiras no zīmes bita. Šī metode atgriež iestatītos bitus, ja BigInteger vērtība ir pozitīva. No otras puses, ja BigInteger ir norādīts ar negatīvu vērtību, šī metode atgriež atiestatīšanas bitu skaitu.


Mēs esam deklarējuši divus mainīgos lielumus 'b1' un 'b2' tipa klasē 'BigInteger'. Mēs esam arī definējuši vēl divus mainīgos, “integer1” un “integer2”, int primitīvā tipa. Pēc deklarācijas mēs inicializējām “b1” ar pozitīvo BigInteger vērtību un “b2” ar negatīvo BigInteger vērtību. Tālāk BigInteger mainīgajiem “b1” un “b2” esam piešķīruši “integer1” un “integer2” ar metodi bitCount(). Saskaitītie biti tiks iegūti no bitCount() metodes norādītajām BigInteger vērtībām.

Pozitīvais BigInteger nodrošina “2” bitus, un BigInteger negatīvā vērtība izvada “1” bitu vērtību.

4. piemērs:

Liela izmēra skaitlisko datu absolūto vērtību programmā BigInteger var noteikt, izmantojot BigInteger klases metodi abs(). Metode abs() atgriež BigInteger absolūto vērtību.


Mums ir BigInteger klase, no kuras mēs esam deklarējuši četrus mainīgos: “big1”, “big2”, “big3” un “big4”. Mainīgie lielumi “big1” un “big2” ir norādīti attiecīgi ar pozitīvām un negatīvām vērtībām. Pēc tam mēs izmantojām abs () metodi ar “big1” un “big2” mainīgajos “big3” un “big4”. Ņemiet vērā, ka abs() metode neņem nekādu ievades vērtību, bet tiek izsaukta ar mainīgajiem “big1” un “big2”. Metode abs() iegūst šo BigInteger mainīgo absolūto vērtību, un rezultāti tiks izdrukāti kompilācijas laikā.

Pozitīvo 432 un negatīvo 432 vērtību absolūtā vērtība ir vienāda, jo abs() metode vienmēr atgriež pozitīvo absolūto vērtību.

5. piemērs:

BigInteger vērtību salīdzināšanu var panākt, izmantojot BigInteger salīdzinātTo() metodi. BigInteger tiek salīdzināts ar BigInteger, kas tiek ievadīts kā parametrs salīdzināšanas metodē. CompleteTo() metodes atgriešanas vērtība ir balstīta uz BigInteger vērtībām. Ja BigInteger vērtības salīdzinājums ir vienāds, tiek atgriezta nulle. Pretējā gadījumā tiek atgriezti “1” un “-1” ar nosacījumu, ka BigInteger vērtība ir lielāka vai mazāka par BigInteger vērtību, kas nodota kā arguments.


Mums ir objekti 'MyBigInt1' un 'MyBigtInt2' klases 'BigInteger' deklarācija. Pēc tam šie objekti tiek norādīti ar tām pašām BigInteger vērtībām. Pēc tam mēs izveidojām citu objektu, “comparevalue”, kur “MyBigInt1” objekts tiek izsaukts ar salīdzinātTo() metodi, un objekts “MyBigInt2” tiek nodots kā arguments, lai salīdzinātu ar objektu “MyBigInt2”. Tālāk mums ir priekšraksts if-else, kurā esam pārbaudījuši, vai salīdzinātTo() metodes rezultāti ir vienādi ar vērtību “0” vai nē.

Tā kā abiem BigInteger objektiem ir vienādas vērtības, salīdzinājumam() rezultāti atgriež nulli, kā parādīts tālāk esošajā attēlā.

6. piemērs:

BigInteger flipBit(index) metodi var izmantot arī, lai apgrieztu noteiktā bitu vietā BigInteger. Šī metode novērtē (bigInt ^ (1<


Mēs esam definējuši divus BigInteger mainīgos “B_val1” un “B_val2”. Mainīgais “B_val1” tiek inicializēts ar BigInteger klasi, kurā ir norādīta vērtība. Pēc tam mēs esam iestatījuši mainīgo “B_val2” ar metodi flipBit(), kur flipBit darbība tiek veikta mainīgajam “B_value” ar indeksa vērtību “2”.

BigInteger vērtības “9” indeksa pozīcija tiek apgriezta ar indeksu “2”, kas izvadā izvada vērtību “13”.

Secinājums

BigInteger klase ir ļoti ērta lietošanā, un tās plašās metožu bibliotēkas dēļ to bieži izmanto konkurējošā programmēšanā. BigInteger tiek izmantots, lai aprēķinātu ļoti garus skaitļus, kas pārsniedz visu pašlaik pieejamo primitīvo datu tipu ietilpību. Tas nodrošina dažādas metodes moduļu aritmētisko darbību veikšanai. Vispirms mēs izveidojām BigInteger un pēc tam apskatījām dažas no tā metodēm.