BigInteger Java: práce s velkými čísly

Jazyk Java se používá hlavně pro psaní velkých firemních webových aplikací. Použije se však i v jiných oblastech, kde je často nutné pracovat s velmi velkým počtem. Přestože Java má primitivní typy, existují situace, kdy nestačí.

Je známo, že všechny primitivy mají jednu nepříjemnou vlastnost - přetečení typu, při kterém výstup mimo povolené hodnoty vede k nesprávným výpočtům. K tomu je speciální třída BigInteger. Java by nebyla Java, pokud by neměla samostatnou třídu s funkčností a pro tento případ. Zvažme to podrobněji.


BigInteger třída Java: popis

Jak jste již pochopili, třída BigInteger slouží jako shell pro velké celočíselné hodnoty. Chcete-li zapouzdřit počet objektů tohoto typu, můžete použít jedno z přetížení konstruktorů nebo hodnotu statické metodyOf. Konstruktor jako argument může přijmout řetězec nebo pole bajtů. V metodě BigInteger Java se metoda statické hodnotyOf používá k převodu celočíselných typů, které reprezentují celá čísla. Vzhledem k tomu, že Java nemá schopnost přetížit operátory, provádět matematické operace na hodnotách zapouzdřených v této třídě, jsou poskytovány odpovídající metody. Budou nadále o nich mluvit.

Java BigInteger: metody a příklady jejich použití

Tato třída má ve svém arzenálu mnoho metod, které umožňují manipulovat s číselných hodnot na nich provést různé matematické operace. Níže je seznam těchtometod.



Zvažte metody, které provádějí aritmetické operace: - add (value) - provádí přidávání hodnot aktuálního objektu s předáním jako argument; - odečíst (odečírá) - odečte odčítač od aktuální hodnoty; - násobí (hodnota) - provede násobení; - dělení (dělič) - dělí aktuální hodnotu na dělič; - pow (int arg) - snižuje hodnotu objektu na hodnotu arg; - abs () - vrátí absolutní hodnotu volaného objektu; - negate () - vrátí objekt BigInteger, jehož hodnota má opačný znak. Podívejme se na jednoduchý příklad provedení aritmetické operace na dvě hodnoty zapouzdřené v objektu: - BigInteger val1 val2 přidání, dělení, oppositeSign; - val1 = nový BigInteger ("5"); - val2 = BigInteger.valueOf
; - přidání = val1.add (val2); - dělení = val2.divide (val1); - oppositeSign = val1.negate (); Věnujte pozornost způsobu vytváření objektů. Proměnná hodnota val1 byla inicializována pomocí konstruktoru, který přijal řetězec a zadržel hodnotu 5. Val2 má hodnotu 10 jako výsledek statické metody valueOf. Hodnota přidané proměnné je výsledkem přidání prvních dvou proměnných a je rovna 15. Vydělující proměnná tedy zachovává výsledek odečítání. oppositeSign se rovná val1 s opačným znaménkem, tj. -5.

Závěr

Jak vidíte, třída BigInteger Java poskytuje různé nástroje pro operace s velkými počty. Současně je vyloučeno přetečení typů, jelikož bezpečnost v jazyce Java má samozřejmě jednu z nejvyšších priorit, aniž by byla ohrožena funkčnost.

Související publikace