Ти тут

Biginteger java: робота з великими числами

Мова Java в основному використовується для написання великих корпоративних веб-додатків. Однак він також застосуємо і інших предметних областях, де досить часто виникає необхідність в роботі з дуже великими числами. Хоча в Java є примітивні типи, бувають ситуації, де і їх недостатньо.

Відео: Java SE: Урок 10. Арифметичні і Математичні операції

biginteger java

Відомо, що у всіх примітивів є одна неприємна особливість - переповнення типу, при якому вихід за межі допустимих значень призводить до некоректних обчислень. Для цього існує спеціальний клас BigInteger. Java не була б Java, якби в ній не було окремого класу з функціональністю і для цього випадку. Розглянемо його докладніше.

Клас BigInteger Java: опис

Як ви вже зрозуміли, клас BigInteger служить оболонкою для великих цілочисельних значень. Щоб инкапсулировать число в об`єкт даного типу, можна використовувати одну з перевантажень його конструкторів, або статичний метод valueOf. Конструктор в якості аргументу може приймати рядок або масив байтів. Для перетворення простих типів, що представляють цілі числа, в BigInteger Java використовують статичний метод valueOf.

Оскільки в Java можливість перевантаження операторів відсутній, для виконання математичних операцій над інкапсульованими в даному класі значеннями, передбачені відповідні методу. Про них далі і піде мова.

Java BigInteger: методи і приклади їх використання

Даний клас має в своєму арсеналі безліч методів, які дозволяють маніпулювати числовими значеннями і щоб між ними чинити різноманітні математичні операції. Нижче наведено список цих методів.

java biginteger методи

java biginteger методи



Розберемо методи, які виконують арифметичні операції:

- add (value) - можна додавати значень поточного об`єкта, з переданим в якості аргументу;

Відео: #Java Урок 24 Великі числа. Порівняння. Обчислення з великою точністю

- subtract (subtractor) - виконує віднімання subtractor від поточного значення;

- multiply (value) - виконує множення;

- divide (divider) - виконує ділення поточного значення на divider;



- pow (int arg) - зводить значення викликав об`єкта в ступінь, величиною в arg;

- abs () - повертає абсолютне значення викликав об`єкта;

- negate () - повертає об`єкт BigInteger, значення якого має протилежний знак.

Давайте розберемо простий приклад виконання арифметичної операції над двома інкапсульованими в об`єкт значеннями:

- BigInteger val1, val2, adding, dividing, oppositeSign;

- val1 = new BigInteger (&ldquo-5&rdquo-);

- val2 = BigInteger.valueOf (10);

- adding = val1.add (val2);

- dividing = val2.divide (val1);

- oppositeSign = val1.negate ();

Зверніть увагу на спосіб створення об`єктів. Мінлива val1 ініціалізованих за допомогою конструктора, який прийняв рядок, і зберігає значення 5. val2 має значення 10 в результаті роботи статичного методу valueOf. Значення змінної adding це результат додавання перших двох змінних і дорівнює 15. Мінлива dividing відповідно зберігає результат віднімання. oppositeSign дорівнює значенню val1 з протилежним знаком, т. е. -5.

Відео: Практичний вебінар на тему "Java interview Питання і відповіді"

висновок

Як бачите, клас BigInteger Java надає різні інструменти для операцій над дуже великими числами. При цьому переповнення типів виключено, так як безпека в Java має один з найвищих пріоритетів, природно без шкоди функціональності.

Поділися в соц мережах:

Увага, тільки СЬОГОДНІ!

Схожі повідомлення


Увага, тільки СЬОГОДНІ!