Jak implementovat BigInteger v Javě?



Tento článek vám představí ještě další zajímavé téma, kterým je BigInteger In Java spolu s jeho praktickou implementací

Když vám primitivní datové typy nemohou pomoci, Java vám pomůže zachránit některé speciální třídy. Jedna taková podmínka nastane, když máte co do činění s velkými čísly, která nemohou být obsažena v primitivních datových typech, jako jsou int a long. Jeden by mohl použít datový typ String k překonání tohoto problému. Pokud však chceme na daném čísle provést aritmetické operace, tato metoda selhává. V tomto příspěvku probereme, jak můžeme tento problém překonat pomocí BigInteger v

V tomto článku se budeme zabývat následujícími ukazateli,





Pojďme tedy začít s tímto článkem,

BigInteger v Javě

Třídy a objekty

Než začnete s třídou BigInteger, je nutné porozumět základům . Třídy a objekty tvoří jádro OOP. Jedná se o silné koncepty používané často při práci s jazyky, které podporují OOP. Tak. Pojďme si projít tyto koncepty a pochopit jejich fungování.



Hlavními myšlenkami OOP jsou modularita kódu a opakovaná použitelnost kódu. Tyto nápady jsou implementovány pomocí třídy a objektu. Třída je místo, kde může uživatel nastavit chování a vlastnosti svých instancí. Třídu můžete také považovat za prototyp objektů patřících tomuto autu.

Například

Uvažujme o třídě s názvem „Pes“. Nyní, když si myslíme na psa, můžeme říci, že všichni psi mají některé společné vlastnosti, jako je barva, nohy, ocas, uši atd. A chování, jako je chůze, třesení ocasem, štěkání atd., Můžeme psát všechny tyto běžné vlastnosti jako atributy a chování jako metody v naší třídě „Pes“. Nyní bude mít každá instance této třídy stejné vlastnosti a chování. Nyní můžeme vytvořit tolik objektů, kolik chceme, a používat funkce uvedené ve třídě. Díky tomu je kód modulární a opakovaně použitelný.



Třídy se také nazývají uživatelem definované datové typy a používají se, když funkce, které se snažíme dosáhnout, není splněna pomocí primitivních datových typů. Příkladem toho je třída BigInteger. Prozkoumejme tento příklad dovnitř a ven.

Pojďme se podívat na další bod tohoto BigInteger In Java

Třída BigInteger

V tomto okamžiku máme dostatek znalostí o třídách a objektech, abychom mohli začít s třídou BigInteger poskytovanou Javou. Třída BigInteger je součástí balíčku Java.math a přichází s různými konstruktéři . Při vytváření objektů této třídy pro ukládání velkých čísel neexistuje horní limit pro počet, který lze uložit. Jediným omezením je dostupná paměť.

Třída BigInteger by měla být použita, pouze pokud je nevyhnutelná. Protože ve srovnání s primitivními datovými typy popadá více paměti a nemůžete provádět aritmetické operace pomocí příslušného aritmetického operátoru, protože Java nepodporuje přetížení operátoru.

Prohlášení

BigInteger Big

Inicializace

BigInteger Big2 = nový BigInteger ('124321098456719538751253254')

V další části probereme konstruktory a metody této třídy.

Nyní bychom pochopili, co jsou konstruktéři,

BigInteger v Javě: konstruktéři

Podívejme se na různé konstruktory poskytované třídou BigInteger. Čím více dostupných konstruktorů, tím větší počet způsobů, jak vytvářet objekty třídy BigInteger. Důležité je mít na paměti, že konstruktéři nemají návratový typ a nic nevracejí.

Pan č

Konstruktory a parametry

Popis

jeden

BigInteger (byte [] val)

Tento konstruktor pomáhá při překladu bajtového pole obsahujícího binární reprezentaci BigIntegeru se dvěma komplementy do BigInteger.

2

BigInteger (int signum, velikost bajtu [])

Pomáhá při překladureprezentace velikosti znaménka BigInteger do BigInteger.

3

BigInteger (int bitLength, int jistota, Náhodný rnd)

Pomáhá při konstrukci náhodně generovaného pozitivního BigIntegeru, který je pravděpodobně hlavní, se zadanou bitLength.

4

BigInteger ( Tětiva val)

Pomáhá při převodu desítkové String reprezentace BigInteger na BigInteger.

5

BigInteger ( Tětiva val, int radix)

Převede String reprezentaci BigInteger v zadaném radixu na BigInteger.

Existuje celkem 5 typů konstruktérů a používají se podle situací a parametrů, které máme k dispozici. Abychom pochopili koncept, použijeme 4. konstruktor z tabulky.

Další bit v tomto článku BigInteger In Java je,

Metody třídy BigInteger

Jak jsme již diskutovali dříve, každá třída má různé atributy a metody, které jsou společné pro všechny instance této třídy. Při provádění aritmetických operací pomocí třídy BigInteger není použití aritmetických operátorů k ničemu. Proto k provádění aritmetických operací musíme použít metody třídy BigInteger.

Metoda

Návratový typ a hodnota

Popis

Sekce ()

Tato funkce vrací BigInteger, jehož hodnota je absolutní hodnotou tohoto BigIntegeru.

Tato funkce pomáhá při hledání absolutní hodnoty daného BigInteger

přidat (BigInteger val)

Tato funkce vrací BigInteger, jehož hodnota je (this + val).

hodnota, která má být přidána k tomuto BigIntegeru

Pomáhá při provádění operace přidání

compareTo (BigInteger val)

Vrátí -1, pokud je BigInteger numericky menší ve srovnání s val, 0, pokud je rovno, 1, pokud je větší.

val - BigInteger, se kterým má být tento BigInteger srovnáván.

Porovná tento BigInteger se zadaným BigIntegerem

divide (BigInteger val)

Tato funkce vrací BigInteger, jehož hodnota je (this / val).

hodnota - hodnota, kterou má být BigInteger rozdělen.

Pomáhá provádět dělení s daným BigIntegerem a vyvolá výjimku, pokud je děleno 0

rovná se( Objekt X)

Tato funkce vrací hodnotu true právě když je zadaný Object BigInteger, jehož hodnota je číselně stejná jako tento BigInteger.

x - Objekt, se kterým má být tento BigInteger porovnáván.

Vrátí logickou hodnotu. True, pokud je zadaný Object BigInteger, jehož hodnota se číselně rovná této BigInteger.

intValue ()

tento BigInteger převeden na typ int.

Převede tento BigInteger na int.

znásobit (BigInteger val)

Tato funkce vrací BigInteger, jehož hodnota je (this * val).

val - Hodnota, kterou má tento BigInteger vynásobit

Pomáhá při provádění operace násobení

odečíst (BigInteger val)

Tato funkce vrací BigInteger, jehož hodnota je (this - val).

hodnota- hodnota, která má být odečtena od tohoto BigIntegeru

Pomáhá při provádění operace odčítání

Metody uvedené v tabulce výše jsou metody, které se většinu času používají při práci s třídou BigInteger. Chcete-li se podívat na úplný seznam poskytnutý třídou BigInteger, projděte si oficiální třídu BigInteger dokumenty poskytované společností Oracle.

Příklad

Po pochopení konceptů OOP, třídy BigInteger, jejích konstruktorů a metod, pojďme nyní zvážit příklad a předvést použití třídy BigInteger.

jak nastavit cestu pro javu

Najdeme čas, který světlo potřebuje k dosažení nejbližší galaxie k Zemi, tj. 2,4011019Km

import java.math.BigInteger veřejná třída BiggInteger {public static void main (String [] args) {BigInteger Distance = new BigInteger ('2401000000000000000000') BigInteger SpeedofLight = new BigInteger ('1080000000') BigInteger Time = Distance.divide (SpeedofLight) System.out.println („Čas, který světlo potřebuje k dosažení galaxie Andromeda, je„ + čas + „hodiny“)}}

Výstup:

Proces skončil s kódem ukončení = 0

Poznámka - Výše ​​uvedený případ je například pro účely. Ve skutečnosti se odpověď může lišit.Vyzkoušejte různé galaxie nebo hvězdy a podle toho upravte kód.

Tak jsme dospěli ke konci tohoto článku o „BigInteger v Javě“. Pokud se chcete dozvědět více, podívejte se na Edureka, důvěryhodná online vzdělávací společnost. Výcvikový a certifikační kurz Edureka Java J2EE a SOA je navržen tak, aby vás vyškolil jak pro základní, tak pro pokročilé koncepty Java spolu s různými rámci Java jako Hibernate & Spring.

Máte na nás dotaz? Uveďte to prosím v sekci komentářů tohoto článku a my se vám ozveme co nejdříve.