Ce sunt numerele cu puncte plutitoare?

Prezentarea numerelor reale (sau reale), în cazul în care acestea sunt stocate ca o mantisă și exponent sunt plutitoare numere de puncte (probabil punct, așa cum se obișnuiește în țările vorbitoare de limba engleză). În ciuda acestui fapt, numărul este prevăzut cu o precizie relativă fixă ​​și schimbarea absolută. Reprezentarea care este utilizat cel mai frecvent, aprobat IEEE 754. operații matematice standard care utilizează numere în virgulă mobilă sunt implementate în sistemele de calcul - hardware și software.

numere cu virgulă mobilă

Punct sau virgulă

Lista detaliată a separatorului zecimal identifică acele țări și anglofitsirovannye vorbitori de limba engleză, în cazul în care înregistrările de numere separate printr-o parte fracționată a întregului punct, deoarece terminologia acestor țări au adoptat numele punctului plutitor - „punctul de plutire“. În Federația Rusă, partea fracționată a întregului este separată în mod tradițional de o virgulă, de unde termenul recunoscut istoric "numere în virgulă mobilă" desemnează același termen. Cu toate acestea, atât în ​​documentația tehnică, cât și în literatura rusă, ambele variante sunt destul de acceptabile.

Termenul „floating point“ provine de la faptul că o reprezentare număr de poziție este o virgulă (zecimală normale sau binar - un computer), care poate încăpea oriunde între numerele de linii. Această caracteristică trebuie discutată separat. Aceasta înseamnă că reprezentarea numerelor în virgulă mobilă poate fi considerată ca o implementare calculator a notație exponențială. Avantajul utilizării unei astfel de reprezentare a unui format de reprezentare punct fix și numere întregi pe care intervalul de valori crește în mod semnificativ atunci când precizia relativă rămâne neschimbată.

exemplu

Dacă virgula din număr este fixă, puteți să o scrieți într-un singur format. De exemplu, sunt date șase biți de număr întreg și doi biți în parte fracționată. Acest lucru se poate face numai în felul următor: 123456,78. Formatul numerelor în virgulă mobilă oferă un spațiu complet de exprimare. De exemplu, sunt date aceleași opt biți. opțiuni de înregistrare poate fi orice în cazul în care programatorul nu face două cifre zgârciți câmp suplimentar de serviciu, în cazul în care acesta va înregistra exponenții care sunt de obicei 10, și 0-16, și evacuări în timp ce numărul total va fi de zece 8 + 2.

Unele variante ale înregistrării, care vă permite să formatați numere cu virgulă mobilă: 12345678000000000000- 0,0000012345678- 123,45678- 1,2345678 și așa mai departe. Acest format are chiar și o unitate de măsurare a vitezei! Mai degrabă, viteza sistemului informatic, care stabilește viteza cu care computerul efectuează operații, unde există o reprezentare a numerelor cu puncte plutitoare. Măsoară această viteză în unități de FLOPS (operațiuni în virgulă mobilă pe secundă, care se traduc ca număr de operațiuni pe secundă cu numere de puncte în virgulă). Această unitate este cea principală în măsurarea vitezei sistemului informatic.

număr format în virgulă mobilă

structură

Pentru a scrie un număr într-un format în virgulă mobilă, este necesar în modul următor, respectând secvența părților necesare, deoarece această intrare este exponențială, unde numerele reale sunt reprezentate ca mantisă și ordine. Acest lucru este necesar pentru a reprezenta un număr prea mare și prea mic, este mult mai convenabil să le citiți. Elemente obligatorii: numărul înregistrat (N), mantisa (M), semnul ordinului (p) și ordinea (n). Ultimile două caractere formează o caracteristică a numărului. Prin urmare, N = M . np. Deci numerele cu virgulă plutitoare sunt scrise. Exemplele vor fi variate.

1. Este necesar să se scrie un milion, astfel încât să nu se confunde în zerouri. 1000000 este o intrare normală, una aritmetică. Un computer arată astfel: 1.0 . 106. Adică, zece în gradul șase - trei personaje, care se potrivesc cu șase zerouri. Acesta este modul în care sunt reprezentate numerele punctelor fixe și ale punctelor în virgulă mobilă, unde puteți detecta imediat diferențele de ortografie.

2. Și un număr atât de dificil ca 1435000000 (un miliard patru sute treizeci și cinci de mii) poate fi pur și simplu scris: 1,435 . 109, numai. În mod similar, cu un semn minus, puteți scrie orice număr. În acest caz, numerele punctului fix și ale punctelor variabile diferă una de cealaltă.

Dar acestea sunt numere mari, cum să se ocupe de cei mici? Da, prea ușor.

3. De exemplu, cum se desemnează o milionime? 0.000001 = 1,0 . 10-6. Facilitați în mod semnificativ scrierea numărului și citirea acestuia.

4. Și mai dificil? Cinci sute patruzeci și șase de miliarde: 0.000000546 = 546 . 10-9. Aici. " Gama de reprezentare a numerelor cu puncte variabile este foarte largă.

reprezentare în virgulă mobilă

formă

Forma unui număr poate fi normală sau normalizată. Normal - respectă întotdeauna precizia numerelor în virgulă mobilă. Trebuie remarcat faptul că mantisa în această formă, fără a lua în considerare semnul, se află la jumătatea intervalului: 0 1, deci 0 ⩽ a < 1. Numărul nu își pierde precizia în forma normală. Dezavantajul formei normale a unui număr este acela că multe numere pot fi scrise în moduri diferite, adică ambigue. Un exemplu de înregistrare diferită a aceluiași număr: 0.0001 = 0, 000001 . 102 = 0.00001 . 101 = 0,0001 . 100 = 0,001 . 10-1 = 0,01 . 10-2 și astfel puteți încă foarte mult. Acesta este motivul pentru care computerul utilizează o notație normalizat diferită, în cazul în care zecimal mantisa își asumă valoarea unităților (inclusiv), și, astfel, la zece (nu sunt incluse), și în același mod numărul binar mantisă are o valoare între unul (inclusiv) la două (nu inclusiv).

Prin urmare, 1 ⩽ a < 10. Acest lucru - numere binare cu o virgulă plutitoare, iar această formă de scriere a oricărui număr (cu excepția zero) se stabilește în mod unic. Dar există și un dezavantaj - imposibilitatea în această formă este zero. Prin urmare, știința informatică prevede utilizarea numărului 0 a unei caracteristici speciale (biți). Partea intregă a numărului (cea mai înaltă cifră) a mantistei într-un număr binar, cu excepția zero în forma normalizată, este 1 (unitate implicită). O astfel de înregistrare este utilizată de standardul IEEE 754. Sistemele de notare pozițională, în cazul în care baza este mai mare de două (sisteme ternare, cuaternare și alte sisteme), această proprietate nu a fost dobândită.

scrieți un număr în format cu puncte în virgulă mobilă

Numere reale

Numerele reale cu puncte învechite sunt, de obicei, singura cale, deoarece aceasta nu este singura modalitate foarte bună de a reprezenta un număr real, ca atare, un compromis între o gamă de valori și acuratețe. Aceasta este analogă unei înregistrări exponențiale executate doar în computer. Un număr cu virgulă mobilă este un set de biți individuali separați de marca (Sign), comandă (exponent) și mantisă (Mantis). Cel mai cunoscut format este un IEEE număr de 754 în virgulă mobilă ca un set de biți care codifică o parte a mantisei sale, pe de altă parte - de gradul și un bit indică semnul numărului: zero, - dacă este pozitiv, unitatea - dacă numărul este negativ. Întreaga ordine este scrisă ca un număr întreg (cod cu o schimbare), iar mantisa este în formă normalizată, partea sa fracționată este în sistemul binar.

Fiecare caracter este un bit, ceea ce indică un semn pentru un număr de punct cu floating-point complet. Mantisa și ordinea sunt numere întregi, sunt combinate cu un semn și fac o reprezentare a numărului în virgulă mobilă. O comandă poate fi numită exponent sau exponent. Nu toate numerele reale pot fi reprezentate în computer în sensul lor exact, în timp ce restul sunt reprezentate de valori aproximative. O variantă mult mai simplă este reprezentarea unui număr real cu un punct fix, unde piesele reale și întregul sunt stocate separat. Cel mai probabil, în așa fel încât întreaga parte este întotdeauna alocată X biți și biți fracționali - Y. Dar arhitecturile procesoarelor nu cunosc această metodă, astfel încât preferința este dată unui număr cu virgulă mobilă.

interval de reprezentare în virgulă mobilă

plus

Adăugarea numerelor în virgulă mobilă este destul de simplă. În legătură cu numărul standard unic de precizie IEEE 754 are un număr mare de biți, deci este mai bine pentru a trece la exemple, cu o idee mai bună de a lua cel mai mic număr în virgulă mobilă. De exemplu, două numere - X și Y.

variabilmarcaexponentmantisă
X01001110
Y00111000

Pașii sunt după cum urmează:



a) Numerele trebuie prezentate într-o formă normalizată. Evident, apare o unitate ascunsă. X = 1,110 . 22, și Y = 1000 . 20.

b) Continuarea procesului de compoziție poate egaliza doar expozanții, dar are nevoie pentru a rescrie valoarea lui Y. Aceasta va corespunde cu valoarea numerelor normalizate, cu toate că, de fapt, - unnormalizes.

Se calculează diferența dintre exponenții de gradul 2 - 0 = 2. Acum muta mantisa pentru a compensa aceste modificări, adică, se adaugă 2 la index al doilea termen, astfel se deplasează o virgulă de unități ascunse, la două puncte la stânga. Rezultă 0.0100 . 22. Acesta va fi echivalentul valorii anterioare a lui Y, adică Y `.

c) Acum trebuie să îndoim mantisa numărului X și Y ajustată.

1,110 + 0,01 = 10,0

Exponentul este încă egal cu indicatorul X prezentat, care este egal cu 2.

d) Suma primită în etapa anterioară a deplasat unitatea de normalizare, deci trebuie să mutați exponentul și să repetați sumarea. 10.0 cu doi biți la stânga punctului zecimal, numărul este necesar să se normalizeze, adică, mutați virgula spre stânga cu un punct, și exponent, respectiv, a crescut cu 1. Se pare 1.000 . 23.

e) Este momentul să convertiți numărul punctului mobil într-un sistem cu un singur octet.

sumămarcaexponentmantisă
X + Y01010000

producție

După cum puteți vedea, adăugarea unor astfel de numere nu este prea dificilă, nimic nu plutește în virgulă. Cu excepția cazului, desigur, cu excepția pentru aducerea numărului de exponent mai mic în rândul mai mult (în exemplul de mai sus, a fost Y la X), precum și restabilirea status quo-ului, și anume problema de compensare - muta punctul zecimal la stânga a mantisei. Când adăugarea a fost deja făcută, este foarte posibilă și o altă dificultate - renormalizarea și trunchierea biților, dacă numărul lor nu corespunde formatului numărului care îl reprezintă.

înmulțirea punctului de înmulțire

multiplicare

Notă binară oferă două moduri de a multiplica numerele cu puncte plutitoare. Această sarcină poate fi efectuată prin înmulțire, care începe cu cele mai mici cifre și care începe cu cifrele cele mai înalte din multiplicator. Ambele cazuri conțin o serie întreagă de operațiuni, cumulând succesiv lucrări private. Aceste operații de adunare sunt controlate de biții multiplicatorului. Prin urmare, dacă există una în una din cifrele multiplicatorului, atunci suma produselor parțiale crește înmulțită cu schimbarea corespunzătoare. Și dacă valoarea zero este multiplicată în multiplicator, multiplicarea nu este adăugată.

În cazul în care multiplicarea se realizează doar două numere, produsul dintre numerele din valoarea sa nu poate depăși numărul de cifre conținute în factori, mai mult de două ori, iar pentru un număr mare este foarte, foarte mult. Dacă se multiplică mai multe numere, produsul riscă să nu fie plasat pe ecran. Deoarece numărul de biți de orice aparat digital este foarte limitată, și forțează să se limiteze la maximum de două ori numărul de sumatoare cifre. Și dacă numărul de cifre este limitat, o eroare intră în mod inevitabil în lucrare. Dacă volumul de calcul este mare, atunci erorile sunt suprapuse și, ca rezultat, eroarea globală crește foarte mult. Aici singura cale de ieșire este de a rotunji rezultatele de multiplicare, atunci eroarea produsului se va dovedi alternantă. Atunci când o operațiune de multiplicare, devine posibil să se meargă dincolo de grila de cifre, ci doar de mai tineri, pentru că există o limită impusă numărului de care sunt reprezentate sub formă de punct fix.

Câteva explicații

Pentru a începe mai bine. Cea mai obișnuită modalitate de a reprezenta un număr este ca un șir de cifre ca un întreg, în care virgula este înscrisă la sfârșitul final. Această linie poate avea orice lungime, iar virgula este în locul cel mai necesar pentru aceasta, separând întregul număr de partea fracționată a acestuia. Formatul reprezentării unui punct fix al unui sistem impune în mod necesar anumite condiții legate de locația virgulei. Notatia exponentiala foloseste reprezentarea normala standard a numerelor. Acesta este un q n { displaystyle aq ^ {n}} aqn. Aici { displaystyle a}o, iar acest dantelă se numește mantisă. Doar despre asta sa spus că 0 ⩽ a < q. Mai mult, totul ar trebui să fie deja clar: n {/ displaystyle n}n - întreg, exponent și q {/ displaystyle q}q - totul, care este baza sistemului de numere dat (și în scrisoarea este, de obicei, 10). Mantisa va lăsa o virgulă după prima cifră, care nu este zero, dar informații suplimentare sunt înregistrate pe valoarea reală a numărului.

Numărul de puncte în virgulă mobilă este foarte similar cu notația standard pentru numere, numai exponentul și mantisa sunt scrise separat. Acesta din urmă este și în format normalizat - cu o virgulă fixă, care împodobește prima cifră semnificativă. Doar punctul flotant este utilizat în principal în calculator, adică, în reprezentarea electronică în cazul în care sistemul nu este zecimal și binar, în cazul în care chiar și mantisa Denormalizați punctul rearanjate - acum este înainte de prima cifră, apoi înainte, nu după ce, în cazul în care partea întreagă în principiu, nu poate fi. De exemplu, sistemul nostru zecimal nativ va da nouă sistemului binar pentru utilizare temporară. Și care va înregistra și mantisa sale în virgulă mobilă de genul: +1001000 ... 0, și și indicele de 0 ... 0100. Dar sistemul zecimal nu poate produce astfel de calcule complexe în binar, folosind o formă de virgulă mobilă.

exemple cu puncte de plutire

Aritmetică lungă

În computerele electronice există pachete software integrate, unde este programată cantitatea de memorie alocată pentru mantisă și exponent, limitată doar la dimensiunea memoriei computerului. Acesta este modul în care arată aritmetica, adică operații simple pe numerele efectuate de un computer. Acestea sunt toate la fel - scăderea și adăugarea, împărțirea și multiplicarea, funcțiile elementare și construcția din rădăcină. Dar numai numerele sunt complet diferite, adâncimea lor de biți poate depăși cu mult lungimea cuvântului calculatorului. Implementarea unor astfel de operațiuni nu este hardware, ci software, dar hardware-ul de bază este folosit pe scară largă în lucrul cu comenzi numerice mult mai mici. Există, de asemenea, aritmetică, unde lungimea numerelor este limitată exclusiv la cantitatea de memorie - aritmetică de precizie arbitrară. O lungă aritmetică este folosită în multe domenii.

1. Pentru a compila codul (procesoare, microcontrolere cu adâncime mică de biți - registre de 10 biți și lungime cuvânt de opt biți, nu este suficient să se ocupe de informații de la analog-digital (analog-digital convertor), și, prin urmare, nu se poate face fără o aritmetică lungă.

2. De asemenea, aritmetica lungă este folosită pentru criptografie, unde este necesar să se asigure acuratețea rezultatului de creștere la o putere sau înmulțire de până la 10309. Întregul aritmetic este utilizat modulo m - un număr natural mare, și nu neapărat simplu.

3. Software-ul pentru finanțatori și matematicieni, de asemenea, nu poate face fără aritmetică lungă, pentru că numai în acest fel puteți verifica rezultatele calculelor pe hârtie - folosind un calculator, oferind o precizie ridicată a numerelor. Punctul în care se pot deplasa pot atras cât mai mult timp. Dar calculele de inginerie și munca oamenilor de știință necesită rar intervenția calculelor software, deoarece este foarte dificil să introduceți datele de intrare fără a face greșeli. Ele sunt, de obicei, mult mai mari decât rezultatele rotunjirii.

Erorile de luptă

La operațiile cu numere în care se deplasează virgula, este foarte dificil să se estimeze o eroare a rezultatelor. Până în prezent, nu a fost inventată o teorie matematică care să satisfacă tot ceea ce ar ajuta la rezolvarea acestei probleme. Dar erorile cu numere întregi sunt ușor de evaluat. Posibilitatea de a scăpa de inexactități se află la suprafață - utilizați doar numere cu o virgulă fixă. De exemplu, programele financiare sunt construite pe acest principiu. Cu toate acestea, este mai simplu: numărul necesar de cifre după punctul zecimal este cunoscut în prealabil.

Alte aplicații nu pot fi limitate la acest lucru, deoarece este imposibil să lucrați cu numere foarte mici sau foarte mari. Prin urmare, atunci când lucrați, este întotdeauna luată în considerare faptul că sunt posibile inexactități și, prin urmare, este necesar să se rotunjească rezultatele atunci când se obțin rezultate. În plus, rotunjirea automată este adesea o acțiune inadecvată și, prin urmare, rotunjirea este stabilită special. Operația de comparație este foarte periculoasă în acest sens. Aici, chiar și pentru a evalua mărimea viitoarelor erori este extrem de dificilă.

Distribuiți pe rețelele sociale:

înrudit
Fracții ordinare și zecimale și acțiuni asupra lorFracții ordinare și zecimale și acțiuni asupra lor
Numere mari: 1000000000 - care este numele numărului?Numere mari: 1000000000 - care este numele numărului?
Sistemul de numere este un tabel ternar. Cum se traduce într-un sistem de numere ternareSistemul de numere este un tabel ternar. Cum se traduce într-un sistem de numere ternare
Numerele diplomatice sunt cel mai bun privilegiu pe drumNumerele diplomatice sunt cel mai bun privilegiu pe drum
Poveste adevărată despre apariția numerelorPoveste adevărată despre apariția numerelor
Care sunt numerele raționale? Ce sunt?Care sunt numerele raționale? Ce sunt?
Cod binar. Tipurile și lungimea codului binar. Cod binar inversCod binar. Tipurile și lungimea codului binar. Cod binar invers
Fracțiunea. Înmulțirea fracțiunilor ordinare, zecimale, mixteFracțiunea. Înmulțirea fracțiunilor ordinare, zecimale, mixte
Reprezentarea numerelor în computer. Reprezentarea numerelor întregi și a numerelor reale în…Reprezentarea numerelor în computer. Reprezentarea numerelor întregi și a numerelor reale în…
Programare: Java. Tipuri de dateProgramare: Java. Tipuri de date
» » Ce sunt numerele cu puncte plutitoare?