BigInteger Java: praca z dużymi liczbami

Język Java jest używany głównie do pisania dużych korporacyjnych aplikacji internetowych. Jednak zastosuje również inne obszary tematyczne, w których często konieczna jest praca z bardzo dużą liczbą osób. Mimo że Java ma typy pierwotne, są sytuacje, w których są one niewystarczające.

Wiadomo, że wszystkie prymitywy mają jedną nieprzyjemną cechę - przepełnienie typu, w którym wyjście przekraczające dopuszczalne wartości prowadzi do nieprawidłowych obliczeń. Dla tego istnieje specjalna klasa BigInteger. Java nie byłaby Jawą, gdyby nie miała oddzielnej klasy z funkcjonalnością i dla tego przypadku. Rozważmy to bardziej szczegółowo.


Klasa języka Java BigInteger: description

Jak już wiesz, klasa BigInteger służy jako powłoka dla dużych wartości całkowitych. Aby enkapsulować liczbę obiektów tego typu, można użyć jednego z przeciążeń jego konstruktorów lub statycznej metody valueOf. Konstruktor jako argument może przyjąć łańcuch lub tablicę bajtów. W Javie BigInteger statyczna metoda valueOf służy do konwersji typów całkowitych reprezentujących liczby całkowite. Ponieważ Java nie ma możliwości przeciążania operatorów, aby wykonywać operacje matematyczne na wartościach zawartych w tej klasie, zapewnione są odpowiednie metody. Będą nadal o nich rozmawiać.

Java BigInteger: Metody i przykłady ich użycia

Ta klasa ma w swoim arsenale wiele metod, które umożliwiają manipulowanie wartościami liczbowymi i wykonywanie na nich różnych operacji matematycznych. Poniżej znajduje się lista tychmetody.



Rozważ metody, które wykonują operacje arytmetyczne: - add (value) - wykonuje dodawanie wartości bieżącego obiektu, z przekazanymi jako argument; - odejmowanie (odejmowanie) - odejmuje subtraktor od bieżącej wartości; - mnożenie (wartość) - wykonuje mnożenie; - dziel (dzielnik) - dzieli bieżącą wartość na dzielnik; - pow (int arg) - zmniejsza wartość obiektu do wartości arg; - abs () - zwraca bezwzględną wartość obiektu o nazwie; - negate () - zwraca obiekt BigInteger, którego wartość ma przeciwny znak. Spójrzmy na prosty przykład wykonania operacji arytmetycznej na dwóch wartościach zawartych w obiekcie: - BigInteger val1 val2 dodawanie, dzielenie, przeciwieństwoSign; - val1 = new BigInteger ("5"); - val2 = BigInteger.valueOf
; - adding = val1.add (val2); - dzielenie = val2.divide (val1); - oppositeSign = val1.negate (); Zwróć uwagę na sposób tworzenia obiektów. Zmienna val1 została zainicjowana przy użyciu konstruktora, który zaakceptował ciąg znaków i zachował wartość 5. val2 ma wartość 10 w wyniku statycznej metody valueOf. Wartość dodawanej zmiennej jest wynikiem dodania pierwszych dwóch zmiennych i jest równa 15. W związku z tym zmienna dzieląca zachowuje wynik odejmowania. oppositeSign jest równe val1 z przeciwnym znakiem, tj. -5.

Podsumowanie

Jak widać, klasa Java klasy BigInteger udostępnia różne narzędzia do operacji o dużych liczbach. Jednocześnie przepełnienie typów jest wykluczone, ponieważ bezpieczeństwo w Javie ma jeden z najwyższych priorytetów, oczywiście, bez kompromisów w zakresie funkcjonalności.

Powiązane publikacje