Java BigInteger

Java Biginteger



„Java“ siūlo specialią „BigInteger“ klasę, skirtą itin dideliems skaičiams, didesniems nei 64 bitų skaičiai, valdyti. Sveikųjų skaičių reikšmių, kurias gali apdoroti ši klasė, dydį tiesiog riboja JVM skirta atmintis. „BigInteger“ klasė, kuri paveldi skaičių. Įgyvendina sąsają „Comparable“. Jame pateikiami kiekvieno Java primityvaus sveikojo skaičiaus operatoriaus ir kiekvieno metodo iš java.lang.math modulio atitikmenys. BigInteger objekto saugomos vertės negalima keisti dėl BigInteger klasės nekintamumo.

1 pavyzdys:

Šioje programoje pateikiamas būdas sukurti BigInteger Java ir pritaikyti aritmetinę operaciją pateiktai BigInteger vertei.








Mes importavome BigInteger klasę iš programoje esančio java matematikos paketo. Po to mes paskelbėme BigInteger objektus „bigInt1“ ir „bigInt2“ pagrindiniame () „Java“ klasės „BigIntegerExample“ metode. Tada mes inicijavome BigInteger objektus su didelėmis skaitinėmis reikšmėmis BigInteger klasėje. Sukūrėme kitą BigInteger klasės objektą, skirtą aritmetinei operacijai atlikti su nurodyta didelio sveikojo skaičiaus reikšme. Objektai deklaruojami kaip „Daugyba“, norint padauginti BinInteger reikšmę, ir „Padalijimas“, norint padalyti BigInteger reikšmę.



Tada objektui „multiply“ priskyrėme „bigInt1“ kartu su daugybos () metodu „BigInteger“, kuris paima įvestį „bigInt2“. Taip pat iškvietėme divizijos () metodą, kuris paima parametrą „bigInt2“, kuris bus padalintas į „bigInt1“, ir po vykdymo atspausdina rezultatus.



Daugybos ir padalijimo operacijos rezultatai su BigInteger reikšmėmis rodomi kitame išvesties paveikslėlyje. Taip BigInteger sukonfigūruojamas java ir naudojamas įvairioms operacijoms.





2 pavyzdys:

Faktorinis skaičiavimas yra geras sveikojo skaičiaus, gaunančio labai dideles įvestis, pavyzdys. BigInteger taip pat gali būti naudojamas norint gauti didesnių sveikųjų skaičių faktorių.




Sukūrėme BigInteger klasės „factorial“ funkciją, kur int tipo objektas „num“ perduodamas kaip argumentas, grąžinantis reikšmės „Num“ faktorialą. „Faktoriaus“ funkcijoje paskelbėme BigInteger objektą „max_fict“, kur nurodyta BigInteger reikšmė „2“. Po to įdiegėme for-ciklą, kuris kartosis ir padaugins „max_fict“ reikšmę iš 4, 5 ir iki n-osios reikšmės, kai bus iškviestas daugybos () metodas. Pats multiply() vadinamas kitu 'valueOf' metodu, kur pateikiamas for-ciklo objektas 'i'. Grąžinimo teiginys pateiks didesnį faktorių. Toliau mes nustatėme programos pagrindinį () metodą. Objektą „Skaičius“ inicijavome reikšme ir atspausdinome faktorialą „Skaičius“ iš faktorial() metodo.

Skaičiaus „40“ faktorinė reikšmė suteikia BigInteger reikšmę taip:

3 pavyzdys:

BigInteger klasės funkcija bitCount() skaičiuoja bitus. Metodas bitCount() suteikia bitų, kurie šiame BigInteger yra dviejų papildymų pavidalu ir skiriasi nuo ženklo bitų, skaičių. Šis metodas grąžina nustatytus bitus, kai BigInteger reikšmė yra teigiama. Kita vertus, jei BigInteger nurodomas neigiama reikšme, šis metodas grąžina iš naujo nustatytų bitų skaičių.


Mes paskelbėme du kintamuosius „b1“ ir „b2“ tipo klasės „BigInteger“. Taip pat apibrėžėme dar du kintamuosius, „integer1“ ir „integer2“, int primityvų tipą. Po deklaracijos inicijavome „b1“ su teigiama BigInteger reikšme, o „b2“ – su neigiama BigInteger reikšme. Tada „BigInteger“ kintamiesiems „b1“ ir „b2“ priskyrėme „integer1“ ir „integer2“ naudodami bitCount() metodą. Nurodytoms BigInteger reikšmėms suskaičiuoti bitai bus gauti naudojant bitCount() metodą.

Teigiamas BigInteger suteikia „2“ bitus, o neigiama BigInteger reikšmė išveda „1“ bitų reikšmę.

4 pavyzdys:

Absoliučią didelio dydžio skaitmeninių duomenų reikšmę BigInteger galima nustatyti naudojant BigInteger klasės metodą abs(). Metodas abs() grąžina BigInteger absoliučią vertę.


Turime BigInteger klasę, iš kurios deklaravome keturis kintamuosius: „big1“, „big2“, „big3“ ir „big4“. Kintamieji „big1“ ir „big2“ nurodomi atitinkamai teigiamomis ir neigiamomis reikšmėmis. Po to mes iškvietėme metodą abs () su „big1“ ir „big2“ kintamuosiuose „big3“ ir „big4“. Atkreipkite dėmesį, kad abs() metodas nepriima jokios įvesties reikšmės, bet yra iškviečiamas su kintamaisiais „big1“ ir „big2“. Metodas abs() gauna absoliučią šių BigInteger kintamųjų reikšmę, o rezultatai bus atspausdinti kompiliavimo metu.

Teigiamų 432 ir neigiamų 432 reikšmių absoliuti reikšmė yra ta pati, nes metodas abs() visada grąžina teigiamą absoliučią vertę.

5 pavyzdys:

BigInteger reikšmes galima palyginti naudojant BigInteger palyginimo() metodą. „BigInteger“ yra lyginamas su „BigInteger“, kuris įvedamas kaip parametras palyginimo() metodo viduje. Grąžinama palyginimo() metodo reikšmė pagrįsta BigInteger reikšmėmis. Kai BigInteger reikšmės palyginimas yra lygus, grąžinamas nulis. Kitu atveju „1“ ir „-1“ grąžinami su sąlyga, kad BigInteger reikšmė yra didesnė arba mažesnė už BigInteger reikšmę, pateiktą kaip argumentą.


Mes turime objektus „MyBigInt1“ ir „MyBigtInt2“ klasės „BigInteger“. Tada šie objektai nurodomi su tomis pačiomis BigInteger reikšmėmis. Po to sukūrėme kitą objektą, „comparevalue“, kur „MyBigInt1“ objektas iškviečiamas naudojant palyginimo() metodą, o objektas „MyBigInt2“ perduodamas kaip argumentas, skirtas palyginti su objektu „MyBigInt2“. Toliau turime teiginį if-else, kuriame patikrinome, ar palyginimo() metodo rezultatai yra lygūs reikšmei „0“, ar ne.

Kadangi abu BigInteger objektai turi tas pačias reikšmes, palyginimasTo() rezultatai pateikia nulį, kaip parodyta paveikslėlyje toliau.

6 pavyzdys:

BigInteger flipBit(index) metodas taip pat gali būti naudojamas apversti tam tikroje BigInteger bitų vietoje. Šis metodas įvertina (bigInt ^ (1<


Apibrėžėme du BigInteger kintamuosius „B_val1“ ir „B_val2“. Kintamasis „B_val1“ inicijuojamas su BigInteger klase, kurioje nurodoma reikšmė. Tada mes nustatėme kintamąjį „B_val2“ naudodami flipBit() metodą, kur flipBit operacija atliekama su kintamuoju „B_value“ su indekso reikšme „2“.

BigInteger reikšmės „9“ indekso padėtis apverčiama indeksu „2“, kuris išvestyje išveda reikšmę „13“.

Išvada

„BigInteger“ klasę labai patogu naudoti ir dėl didžiulės metodų bibliotekos ji dažnai naudojama konkurenciniam programavimui. BigInteger naudojamas labai ilgiems skaičiams, viršijantiems visų šiuo metu prieinamų primityvių duomenų tipų pajėgumą, apskaičiuoti. Jame pateikiami įvairūs modulinių aritmetinių operacijų metodai. Pirmiausia sukūrėme „BigInteger“, o tada apžvelgėme keletą jo metodų.