Cunoștințe, prelegere, tipuri de date

5.4. Aritmetica punctului plutitor

Aritmetica numerelor cu virgulă mobilă implementează operații matematice de bază și calcule pe un computer. Datorită disponibilității tipurilor de date cu un punct variabil, operațiile de divizare a oricărui număr sunt implementate corect. Cu toate acestea, pentru unele operații. precum și asupra valorilor maxime și minime ale numerelor, se impun restricții. Aceste limitări vor fi discutate mai jos.







Deși aritmetica numerelor în virgulă mobilă nu este subiectul principal al acestui manual, este necesar să vă familiarizați cu elementele de bază ale activității sale. În prima lectură, puteți sări peste această secțiune.

5.4.1. Reprezentarea în virgulă mobilă

Punct plutitor este un număr real având o parte întreagă și o parte fracționară reprezentând o secvență de zero-uri și altele (adică, numere normale obținute în urma măsurării). În computer sunt prezentate sub formă de mantisă și ordine. Conceptul de mantisă și ordine este dat în clasa a șasea algebră a școlii secundare. Reamintim:

În calculele numerice, este convenabil să utilizați următoarea formulă de numere reale:

În primul exemplu, mantisa este egal cu 0,123, iar ordinea corespunde numărului 3. Numărul total de primit 123. În al doilea exemplu, mantisa este egală cu 0,25, iar ordinul - 10 (a obține un număr de 2 miliarde de 500 de milioane). Mantisa specifică întotdeauna precizia cu care sunt reprezentate numerele reale. Cu cât numărul de biți din mantisă este mai mare, cu atât este mai mare precizia calculului. În exemplul de mai sus, mantisa primului număr este mai mare decât mantisa celui de-al doilea număr, deși al doilea număr este mult mai mare decât primul. Ordinea definește "cifra" de la care începe "numărarea" începutului valorii mantistei.

Reprezentarea numerelor cu puncte variabile într-un calculator are loc și cu ajutorul zerourilor și a celor, însă formatul lor diferă de formatul întregilor (vezi [40]). Schematic poate fi reprezentat după cum urmează:

Lungimea reprezentării mașinilor cu numere cu un punct de plutire este de 4, 8 și 10 octeți. În acest caz, numărul din registrul de 4 octeți lungime este de tip float (sau real), în registru 8 octeți lungi - dublu, în registru 10 octeți în lungime - dublu lung.







Tabelul 5.5 prezintă valorile maxime și minime acceptate de numerele cu puncte variabile în registrele cu cifre diferite. Tabelul 5.6 oferă o corespondență între adâncimea de biți a registrelor cu numărul de puncte în virgulă și notarea lor în Quick Basic, C, C ++ și Java.

Tabelul 5.5. Valorile minime și maxime ale numerelor în registrele cu virgulă mobilă

5.4.2 Aritmetica punctului plutitor

Cu date sub formă de numere cu puncte variabile, sunt posibile următoarele operații:

  • plus;
  • scădere;
  • multiplicare;
  • diviziune;
  • exponentiere;
  • găsirea restului divizării (nu în toate limbile);
  • schimbarea semnului numărului;
  • creșterea numărului;
  • decrementarea unui număr;
  • raportul "mai mult" și "mai puțin";
  • și alte funcții algebrice sunt de asemenea disponibile.

5.4.3. Situații speciale atunci când lucrați cu numere cu virgulă mobilă

Aritmetica punctului mobil are următoarele întreruperi software:

  • diviziunea prin zero (împărțit la zero) - o încercare de a diviza cu zero;
  • depășire - un număr pozitiv sau negativ din registru depășește valorile sale maxime;
  • depășirea ordinii - ca rezultat al înmulțirii, ordinul a depășit valoarea maximă sau minimă;
  • dispariția ordinului - nulizarea mantistei cu o valoare minimă a ordinului.

Alte întreruperi sunt posibile.

Notă. Deoarece registrele pentru operațiuni întregi și operațiunile în virgulă mobilă sunt nu numai diferite, ci și procesate de diferite subsisteme de procesoare, caracteristicile de funcționare pentru ele sunt generate independent în diferite registre. Acest lucru vă permite să gestionați flexibil întreruperi software. dar acest lucru se aplică deja la programarea sistemului.

5.5. rezumat

Deci, după ce ați ascultat această prelegere, ați aflat:

  • Există două tipuri de date: "mașină" (care sunt determinate de arhitectura computerelor) și "utilizator" (definite de programatori de sistem și de aplicație). Primul tip de date este prezentat în prelegerile "Tipuri de date" și "Date caracteristice primitive"], al doilea tip este prezentat în "Alte tipuri de date" și "Perl variabile". În această descriere, clasele nu sunt considerate - este prerogativa unui anumit subiect.
  • Conceptul de "tipuri de date" este implementat în majoritatea limbajelor de programare "reale", dar este absent în limbile "script" (limbi pentru scrierea de macrocomenzi).

În următoarea conferință veți fi familiarizați cu date "primitive simbolice".

5.6. glosar







Articole similare

Trimiteți-le prietenilor: