Как да внедрим BigInteger в Java?



Тази статия ще ви запознае с още една интересна тема, която е BigInteger In Java, заедно с практическото му изпълнение

Когато примитивните типове данни не могат да ви помогнат, Java има някои специални класове, които да ви спасят. Едно такова условие възниква, когато имате работа с големи числа, които не могат да се съдържат в примитивни типове данни като int и long. Човек може да използва String тип данни, за да преодолее този проблем. Но ако искаме да изпълняваме аритметични операции с дадено число, този метод е кратък. В тази публикация ще обсъдим как можем да преодолеем този проблем с помощта на BigInteger в

Следните указания ще бъдат обхванати в тази статия,





Нека започнем с тази статия,

BigInteger в Java

Класове и обекти

Преди да започнете с класа BigInteger е от съществено значение да разберете основите на . Класовете и обектите формират ядрото на ООП. Това са мощни концепции, използвани често при работа с езици, които поддържат ООП. Така. Нека да разгледаме тези концепции и да развием кратко разбиране за тяхната работа.



Основните идеи зад OOP са модулната модулност на кода и повторната употреба. Тези идеи се реализират с помощта на клас и обект. Класът е място, където потребителят може да зададе поведението и свойствата на своите екземпляри. Можете също да разглеждате клас като прототип на обектите, принадлежащи към тази кола.

Например

Нека разгледаме клас на име „Куче“. Сега, ако мислим за куче, можем да кажем, че всички кучета имат някои общи свойства като цвят, крака, опашка, уши и т.н. и поведение като ходене, разклащане на опашката, лаене и т.н., можем да напишем всички тези общи свойства като атрибути и поведение като методи в нашия клас „Куче“. Сега всеки екземпляр от този клас ще има същите свойства и поведение. Сега можем да създадем колкото обекти искаме и да използваме функционалностите, споменати в класа. Това прави кода модулен и многократно използваем.



Класовете също се наричат ​​потребителски дефинирани типове данни и се използват, когато функционалността, която се опитваме да постигнем, не е изпълнена чрез използване на примитивни типове данни. Класът BigInteger е пример за това. Нека изучим този пример вътре и навън.

Нека да разгледаме следващата точка на това BigInteger в Java

Клас BigInteger

В този момент имаме достатъчно познания за класове и обекти, за да започнем с класа BigInteger, предоставен от Java. Класът BigInteger е част от пакета Java.math и се предлага с различни конструктори . Докато създавате обекти от този клас за съхраняване на големи числа, няма горна граница за броя, който може да се съхранява. Единственото ограничение е наличната памет.

Класът BigInteger трябва да се използва само ако е неизбежен. Тъй като той грабва повече памет в сравнение с примитивните типове данни и не можете да правите аритметични операции, като използвате съответния аритметичен оператор, тъй като Java не поддържа претоварване на оператора.

Декларация

BigInteger Big

Инициализация

BigInteger Big2 = ново BigInteger ('124321098456719538751253254')

В следващия раздел ще обсъдим конструкторите и методите от този клас.

Сега бихме разбрали какво са конструктори,

BigInteger в Java: Конструктори

Нека да разгледаме различните конструктори, предоставени от класа BigInteger. Повече броят на конструкторите на разположение, повече начините за създаване на обекти от клас BigInteger. Важното е да имате предвид, че конструкторите нямат тип return и те не връщат нищо.

Г-н не

Конструктори и параметри

Описание

един

BigInteger (байт [] вал)

Този конструктор помага при превод на байтов масив, съдържащ двоичното представяне на Big’s Integer в BigInteger.

2

BigInteger (int signum, байт [] величина)

Помага при преводапредставяне на величината на знака на BigInteger в BigInteger.

3

BigInteger (int bitLength, int сигурност, Случайни rnd)

Помага при конструирането на произволно генериран положителен BigInteger, който вероятно е прост, с посочения bitLength.

дълбоко копие срещу плитко копие Java

4

BigInteger ( Струна вал)

Помага при преобразуването на десетичното String представяне на BigInteger в BigInteger.

5

BigInteger ( Струна val, int radix)

Преобразува представянето на String на BigInteger в посочения радикс в BigInteger.

Съществуват общо 5 вида конструктори и се използват според ситуациите и параметрите, налични при нас. За да разберем концепцията, ще използваме 4-ия конструктор от таблицата.

Следващият бит в тази статия на BigInteger In Java е,

Методи от клас BigInteger

Както обсъждахме по-рано, всеки клас има различни атрибути и методи, които са общи за всички инстанции на този клас. Докато правите аритметични операции с помощта на клас BigInteger, използването на аритметични оператори не е от полза. Следователно за провеждане на аритметични операции трябва да използваме методите на клас BigInteger.

Метод

Типът и стойността на връщане

Описание

Раздел ()

Тази функция връща BigInteger, чиято стойност е абсолютната стойност на този BigInteger.

Тази функция помага при намирането на абсолютната стойност на дадения BigInteger

добавяне (BigInteger val)

Тази функция връща BigInteger, чиято стойност е (this + val).

val- стойност, която трябва да се добави към това BigInteger

Помага при извършване на операцията по добавяне

compareTo (BigInteger val)

Връща -1, ако BigInteger е числово по-малко в сравнение с val, 0 ако е равно, 1 ако е по-голямо.

val- BigInteger, с който трябва да се сравни този BigInteger.

Сравнява този BigInteger с посочения BigInteger

разделяне (BigInteger val)

Тази функция връща BigInteger, чиято стойност е (this / val).

val- стойност, на която трябва да се раздели BigInteger.

Помага за извършване на разделяне с даден BigInteger и извежда изключение, ако е разделено на 0

се равнява( Обект х)

Тази функция връща true ако и само ако посоченият Обект е BigInteger, чиято стойност е числено равна на този BigInteger.

x - Обект, с който трябва да се сравни този BigInteger.

Връща логическа стойност. Вярно, ако посоченият Обект е BigInteger, чиято стойност е числено равна на това BigInteger.

intValue ()

този BigInteger се преобразува в тип int.

Преобразува този BigInteger в int.

умножаване (BigInteger val)

Тази функция връща BigInteger, чиято стойност е (this * val).

val - Стойност, която трябва да се умножи по този BigInteger

Помага при извършване на операцията за умножение

изваждане (BigInteger val)

Тази функция връща BigInteger, чиято стойност е (this - val).

val- стойност, която трябва да бъде извадена от това BigInteger

Помага при извършване на операцията за изваждане

Методите, споменати в горната таблица, са методите, които се използват през повечето време, докато се работи с класа BigInteger. За да разгледате пълния списък, предоставен от класа BigInteger, преминете през официалния клас BigInteger документи предоставено от Oracle.

Пример

След като разбрахме концепциите за ООП, клас BigInteger, неговите конструктори и методи, сега нека разгледаме пример и да демонстрираме използването на класа BigInteger.

Нека намерим времето, необходимо на светлината за достигане на най-близката галактика до земята, т.е. 2.4011019.Км.

импортирайте java.math.BigInteger публичен клас BiggInteger {публична статична невалидна основна (String [] аргументи) {BigInteger Разстояние = нов BigInteger ('2401000000000000000000') BigInteger SpeedofLight = нов BigInteger ('1080000000') BigInteger Time = Distance.divide (SpeedofLight) System.out.println ('Времето, необходимо на светлината за достигане на галактиката Андромеда, е' + Време + 'часове')}}

Изход:

Процесът завърши с код за изход = 0

Забележка - Горният случай е например целта. В действителност отговорът може да се различава.Опитайте различни галактики или звезди и съответно редактирайте кода.

Така стигнахме до края на тази статия за „BigInteger в Java“. Ако искате да научите повече, разгледайте от Edureka, доверена компания за онлайн обучение. Курсът за обучение и сертифициране на Java J2EE и SOA на Edureka е предназначен да ви обучи както за основните, така и за разширените Java концепции, заедно с различни Java рамки като Hibernate & Spring.

Имате въпрос към нас? Моля, споменете го в раздела за коментари на тази статия и ние ще се свържем с вас възможно най-скоро.