КампутарыПраграмаванне

BigInteger Java: праца з вялікімі лікамі

Мова Java у асноўным выкарыстоўваецца для напісання вялікіх карпаратыўных вэб-прыкладанняў. Аднак ён таксама выкарыстоўваецца і ў дачыненні і іншых прадметных галінах, дзе даволі часта ўзнікае неабходнасць у працы з вельмі вялікімі лікамі. Хоць у Java маюцца прымітыўныя тыпы, бываюць сітуацыі, дзе і іх недастаткова.

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

Клас BigInteger Java: апісанне

Як вы ўжо зразумелі, клас BigInteger служыць абалонкай для вялікіх цэлалікавых значэнняў. Каб інкапсуляваць лік ў аб'ект дадзенага тыпу, можна выкарыстоўваць адну з перагрузак яго канструктараў, альбо статычны метад valueOf. Канструктар ў якасці аргументу можа прымаць радок альбо масіў байтаў. Для пераўтварэння простых тыпаў, якія прадстаўляюць цэлыя лікі, у BigInteger Java выкарыстоўваюць статычны метад valueOf.

Паколькі ў Java магчымасць перагрузкі аператараў адсутнічае, для выканання матэматычных аперацый над інкапсуляванага ў дадзеным класе значэннямі, прадугледжаны адпаведныя метаду. Пра іх далей і пойдзе гаворка.

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

Дадзены клас мае ў сваім арсенале мноства метадаў, якія дазваляюць маніпуляваць лікавымі значэннямі і вырабляць над імі разнастайныя матэматычныя аперацыі. Ніжэй прыведзены спіс гэтых метадаў.

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

- add (value) - выконвае складанне значэнняў бягучага аб'екта, з перададзеным ў якасці аргументу;

- subtract (subtractor) - выконвае адніманне subtractor ад бягучага значэння;

- multiply (value) - выконвае множанне;

- divide (divider) - выконвае дзяленне бягучага значэння на divider;

- pow (int arg) - узводзіць значэнне які выклікаў аб'екта ў ступень, велічынёй у arg;

- abs () - вяртае абсалютнае значэнне які выклікаў аб'екта;

- negate () - вяртае аб'ект BigInteger, значэнне якога мае супрацьлеглы знак.

Давайце разбярэм просты прыклад выканання арыфметычнай аперацыі над двума інкапсуляванага ў аб'ект значэннямі:

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

- val1 = new BigInteger ( "5");

- 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.

заключэнне

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

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 be.atomiyme.com. Theme powered by WordPress.