Java BigInteger

Java Biginteger



Java ponuja poseben razred BigInteger za upravljanje izjemno velikih števil, ki so večja od 64-bitnih števil. Velikost celih vrednosti, ki jih ta razred lahko obravnava, je preprosto omejena z dodeljenim pomnilnikom JVM. Razred BigInteger, ki podeduje Number.implementira vmesnik Comparable. Poda ekvivalente za vsak primitivni celoštevilski operator Java kot tudi za vsako metodo iz modula java.lang.math. Shranjene vrednosti objekta BigInteger ni mogoče spremeniti zaradi nespremenljivosti razreda BigInteger.

Primer 1:

Naslednji program ponuja način za ustvarjanje BigInteger v Javi in ​​uporabi aritmetično operacijo za navedeno vrednost BigInteger.








Razred BigInteger smo uvozili iz paketa java math znotraj programa. Po tem smo razglasili objekta BigInteger »bigInt1« in »bigInt2« v metodi main() razreda java »BigIntegerExample«. Nato smo inicializirali objekte BigInteger z velikimi številskimi vrednostmi znotraj razreda BigInteger. Ustvarili smo še en objekt razreda BigInteger za izvajanje aritmetične operacije na podani veliki celoštevilski vrednosti. Objekti so deklarirani kot »Množenje« za množenje vrednosti BinInteger in »Deljenje« za deljenje vrednosti BigInteger.



Nato smo dodelili »bigInt1« skupaj z metodo multiply() BigIntegerja objektu »multiply«, ki sprejme vnos »bigInt2«. Poklicali smo tudi metodo division(), ki vzame parameter »bigInt2«, ki bo deljen z »bigInt1«, in natisne rezultate po izvedbi.



Rezultati operacije množenja in deljenja na vrednosti BigInteger so prikazani na naslednji izhodni sliki. Tako je BigInteger konfiguriran v Javi in ​​se uporablja za različne operacije.





Primer 2:

Faktorski izračun je dobra ilustracija, da celo število dobi zelo velike vnose. BigInteger je mogoče uporabiti tudi za pridobivanje faktoriala za večje celoštevilske vrednosti.




Ustvarili smo funkcijo »faktorial« razreda BigInteger, kjer se predmet »num« tipa int posreduje kot argument za vrnitev faktorijela vrednosti »Num«. Znotraj funkcije »factorial« smo deklarirali objekt BigInteger »max_fict«, kjer je podana vrednost BigInteger »2«. Po tem smo uvedli zanko for, ki bo ponovila in nato pomnožila vrednost »max_fict« s 4, 5 in do n-te vrednosti, ko bo priklicana metoda multiply(). Sama multiply() se imenuje druga metoda »valueOf«, kjer je na voljo objekt »i« zanke for. Stavek vrnitve bo zagotovil večji faktoriel. Nato smo vzpostavili programsko metodo main(). Inicializirali smo objekt »Num« z vrednostjo in natisnili faktorial »Num« iz metode factorial().

Faktoriel števila '40' zagotavlja vrednost BigInteger, kot sledi:

Primer 3:

Funkcija bitCount() razreda BigInteger prešteje bite. Metoda bitCount() zagotavlja število bitov, ki so v obliki dveh komplementov v tem velikem celem številu in se razlikujejo od predznačnega bita. Ta metoda vrne nastavljene bite, ko je vrednost BigIntegerja pozitivna. Po drugi strani pa ta metoda vrne število ponastavljenih bitov, če je BigInteger določen z negativno vrednostjo.


Razglasili smo dve spremenljivki, »b1« in »b2« razreda tipa »BigInteger«. Prav tako smo definirali še dve spremenljivki, 'integer1' in 'integer2,' int primitivni tip. Po deklaraciji smo inicializirali »b1« s pozitivno vrednostjo BigInteger in »b2« z negativno vrednostjo BigInteger. Nato smo spremenljivkama BigInteger »b1« in »b2« z metodo bitCount() dodelili »integer1« in »integer2«. Prešteti biti bodo pridobljeni iz metode bitCount() za navedene vrednosti BigInteger.

Pozitivni BigInteger zagotavlja '2' bita, negativna vrednost BigIntegerja pa daje vrednost '1' bita.

Primer 4:

Absolutno vrednost velikih numeričnih podatkov v BigIntegerju je mogoče določiti z uporabo metode abs() razreda BigInteger. Metoda abs() vrne absolutno vrednost BigIntegerja.


Imamo razred BigInteger, iz katerega smo deklarirali štiri spremenljivke: »big1«, »big2«, »big3« in »big4«. Spremenljivki »big1« in »big2« sta določeni s pozitivnimi oziroma negativnimi vrednostmi. Po tem smo priklicali metodo abs() z 'big1' in 'big2' v spremenljivkah 'big3' in 'big4'. Upoštevajte, da metoda abs() ne sprejme nobene vhodne vrednosti, ampak se kliče s spremenljivkama »big1« in »big2«. Metoda abs() dobi absolutno vrednost za te spremenljivke BigInteger, rezultati pa bodo natisnjeni v času prevajanja.

Absolutna vrednost pozitivnih 432 in negativnih 432 vrednosti je enaka, ker metoda abs() vedno vrne pozitivno absolutno vrednost.

Primer 5:

Primerjavo vrednosti BigInteger je mogoče doseči z uporabo metode BigInteger compareTo(). BigInteger se primerja z BigIntegerjem, ki je vnesen kot parameter znotraj metode compareTo(). Vrnjena vrednost metode compareTo() temelji na vrednostih BigInteger. Ko je primerjava vrednosti BigInteger enaka, se vrne nič. V nasprotnem primeru sta vrnjena »1« in »-1« pod pogojem, da je vrednost BigInteger večja ali manjša od vrednosti BigInteger, posredovane kot argument.


Imamo deklaracijo objektov »MyBigInt1« in »MyBigtInt2« razreda »BigInteger«. Ti objekti so nato podani z enakimi vrednostmi BigInteger. Po tem smo ustvarili še en objekt, »comparevalue«, kjer se objekt »MyBigInt1« pokliče z metodo compareTo(), objekt »MyBigInt2« pa se posreduje kot argument za primerjavo z objektom »MyBigInt2«. Nato imamo stavek if-else, kjer smo preverili, ali so rezultati metode compareTo() enaki vrednosti '0' ali ne.

Ker imata oba predmeta BigInteger enake vrednosti, rezultati compareTo() vrnejo nič, kot je prikazano na spodnji sliki.

Primer 6:

Metodo BigInteger flipBit(index) lahko uporabite tudi za obračanje na določeni bitni lokaciji znotraj BigIntegerja. Ta metoda ovrednoti (bigInt ^ (1<


Definirali smo dve spremenljivki BigInteger, »B_val1« in »B_val2«. Spremenljivka “B_val1” je inicializirana z razredom BigInteger, kjer je navedena vrednost. Nato smo nastavili spremenljivko “B_val2” z metodo flipBit(), kjer se operacija flipBit izvaja na spremenljivki “B_value” z vrednostjo indeksa “2.”

Indeksni položaj vrednosti BigInteger »9« se obrne z indeksom »2«, kar v izhodu prikaže vrednost »13«.

Zaključek

Razred BigInteger je zelo priročen za uporabo in se zaradi svoje obsežne knjižnice metod pogosto uporablja v tekmovalnem programiranju. BigInteger se uporablja za izračun zelo dolgih števil, ki presegajo zmogljivost vseh trenutno dostopnih primitivnih tipov podatkov. Ponuja različne metode za modularne aritmetične operacije. Najprej smo ustvarili BigInteger in nato obravnavali nekaj njegovih metod.