Întregul aritmetic

Operațiile aritmetice cu operanții întregi sunt efectuate în conformitate cu regulile de adăugare pe modul, adică dacă valoarea depășește intervalul de variație admisibil de valori numerice ale tipului corespunzător (de exemplu, int sau lung), scade în modul corespunzător mărimii acestui interval. Prin urmare, rezultatele operațiilor întregi nu conduc niciodată la depășirea variabilei sau la dispariția unor biți semnificativi (sub-flux) în ea - cifrele numărului pot fi transferate.







În diviziunea întreg, restul este eliminat (de exemplu, 7/2 este 3 și (-7) / 2 este -3). Rezultatele aplicării operatorilor de diviziune și calcularea restului în raport cu argumentele tipurilor întregi respectă următoarea regulă:

Deci, 7% 2 este 1 și -7% 2 este -1. Dacă operanzi-compas în termeni de divizare întreg și calcularea reziduului este dat un zero, operația nu este validă și un ArithmeticException tip excepție.

Aritmetica punctului mobil

În timpul execuției operațiilor aritmetice în virgulă mobilă argumente posibile biți de preaplin ochiuri la infinit (rezultatul depășește plutitorul superior limită sau valorile de tip dublu turndown) și curentul inferior - de multe ori la zero (rezultatul este prea mic pentru a flotorului de tip sau dublu). Ca urmare a calculării expresiilor incorecte (cum ar fi, spre exemplu, împărțirea infinității în infinit), se obține valoarea NaN - "nu un număr".

Operațiile aritmetice asupra operanților finiți cu virgulă mobilă care satisfac intervalele de precizie pentru reprezentarea valorilor flotante și duble sunt destul de previzibile. Regula de atribuire a unui semn la un rezultat este, de asemenea, tradițională: atunci când se înmulțește și împarte numerele cu un singur semn, rezultatul este pozitiv, iar dacă semnele sunt diferite - negative.







Adăugarea a două infinituri dă, ca rezultat, aceeași infinitate dacă semnele lor sunt identice și NaN - dacă semnele sunt diferite. Prin scăderea infinității unui semn, se obține NaN; Scăderea infinităților cu semne diferite are ca rezultat infinitul cu semnul care este prezent în operanul stâng. De exemplu, (∞ - ()) este ∞. Rezultatul calculării unei expresii aritmetice, din care unul dintre operanzi este NaN, este întotdeauna NaN. Deversarea are ca rezultat infinitatea semnului corespunzător și pierderea semnificației - valoarea (eventual zero) a semnului corespunzător. La efectuarea operațiunilor aritmetice cu un punct de plutire, se menține un zero negativ, - 0,0, care în contextul operatorilor de comparație este pozitiv zero, + 0,0. Deși ambele zerouri sunt considerate a fi echivalente, ele pot conduce la rezultate diferite în expresii specifice. De exemplu, rezultatul calculării expresiei 1f / 0f - este egal cu infinitul pozitiv, iar expresia 1f / -0f - infinit negativ.

Dacă rezultatul dispariției cifrelor semnificative este -0,0 și dacă -0,0 == 0,0, cum puteți afla faptul că obțineți un zero negativ? Este necesar să se pună valoarea testată zero în expresia în care semnul se poate manifesta și să verifice rezultatul. Fie, de exemplu, x conține o valoare zero; atunci expresia 1 / x va fi egală cu infinitatea negativă dacă x este zero negativă și infinit pozitiv - altfel.

Regulile pentru executarea operațiunilor cu cantități infinite coincid cu cele acceptate în matematică. Adăugarea algebrică a oricărei cantități finite cu infinit oferă același infinit ca rezultat. De exemplu, (-∞ + x) este -∞ pentru orice valoare finită de x.

Valorile infinit în Java-program sunt specificate folosind constante simbolice POSITIVE_INFINITY (infinit pozitiv) și NEGATIVE_INFINITY (infinit negativ), a declarat în flotorului clasa înveliș și Double. De exemplu, dublu. NEGATIVE_INFINITY se referă la versiunea valorii infinitului negativ definită în clasa Double.

Multiplicarea infinitului prin zero are ca rezultat NaN. Când infinitatea este înmulțită cu o valoare finită nenuloasă, se obține infinitatea semnului corespunzător.

Operațiile de împărțire și de calcul al restului în aplicație la argumentele cu puncte de flotare pot avea ca rezultat valori infinite sau NaN, dar nu duc niciodată la aruncarea excepțiilor. Rezultatele operațiilor de divizare și calculul restului pentru diferite combinații ale valorilor argumentelor sunt prezentate în Tabelul 9.







Articole similare

Trimiteți-le prietenilor: