1 / 21

Reprezentarea numerelor in calculator

Reprezentarea numerelor in calculator. Curs III. Reprezentarea numerelor pozitive.

ivana
Download Presentation

Reprezentarea numerelor in calculator

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Reprezentarea numerelor in calculator Curs III

  2. Reprezentarea numerelor pozitive • Reprezentarea numerelor întregi pozitive în baza 2 este bine cunoscută. Reprezentarea unui numar K in baza 2 se poate simboliza sub forma unui şir de 'n' cifre binare 'ci= 0' sau 'ci= 1' unde indexul 'i' are valori cuprinse între 0 si n-1. Calculul numarului K reprezentat printr-o succesiune de cifre binare: Pentru transformarea numărului K în binar se realizează impărtirii numarului K la 2 respectiv a câturilor rezultate din impărţirile anterioara la 2 pana când ultimul cât devine 0. Codul binar este reprezentat de resturile împarţirilor luate în succesiune inversă apariţiei acestora.

  3. Exemplu: Determinarea reprezentarii binare a numarului K=42 • 42 : 2 = 21 rest 0 • 21 : 2 = 10 rest 1 • 10 : 2 = 5 rest 0 • 5 : 2 = 2 rest 1 • 2 : 2 = 1 rest 0 • 1 : 2 = 0 rest 1 42 = 1010102 Pentru reprezentarea lui 42 in binar este nevoie de 6 cifre binare. În general în calculator se folosesc reprezentarile pe 8, 16, 32 sau 64 biţi. Rangurile superioare se vor completa cu 0. Pentru reprezentarea numarului 42 pe 8 biţi rezultă codul: 00101010 Un întreg pozitiv k poate fi reprezentat pe n cifre binare dacă este satisfăcută relatia:

  4. Reprezentarea numerelor fractionare – virgula fixa • Reprezentarea in binar a numerelor fractionare se realizeaza după modelul zecimal. • Pentru început vom considera un număr zecimal a cărui parte întreagă este 0. • Reprezentare in binar se va simboliza: • In calculator nu se reprezintă cifra '0' din faţa punctului zecimal şi de asemenea nu este reprezentat punctul zecimal. Acestea se subînţeleg. • Calculul unui număr fracţionar pornind de la reprezentarea sa binară este: • Partea fractionară este utilizată pentru generarea urmatorelor cifre binare repetand procedura prezentată anterior. • Prima cifra a reprezentării binare a unui număr pozitiv fracţionar subunitar este partea întregă a produsului dintre numarului dat si 2.

  5. Exemplu: numarul 0.7 • Reprezentarea în binar a numarului 0.7 este: 0.10110.... • Dacă reprezentarea binară se trunchiază la 5 cifre binare după punctul valoarea exactă reprezentată este k'=0.6875 Reprezentarea in binar a unui număr zecimal cu număr finit de cifre nu se poate realiza intodeauna pe un număr finit de cifre binare. Reprezentarea se trunchiaza la un număr finit de cifre binare în funcţie de rezoluţia de reprerzentare.

  6. Rezolutia reprezentarii in virgula fixa • Reprezentarea in binar a unui număr zecimal cu număr finit de cifre nu se poate realiza intodeauna pe un număr finit de cifre binare. Reprezentarea se trunchiaza la un număr finit de cifre binare în funcţie de rezoluţia de reprezentare. • Dacă reprezentarea se face pe 'm' cifre binare se poate calcula rezoluţia reprezentarii r=2-m. Pentru 5 cifre binare rezoluţia r=2-5=0.03125.

  7. Reprezentarea numerelor fractionare cu parte intreaga diferita de zero • Reprezentarea numerelor pozitive in virgula fixă aloca un numar determinat de cifre binare pentru reprezentarea părţi zecimale. Se rerprezintă partea întreaga pe un numar de biţi alocaţi părţi întregi si partea zecimală pe cei m biţi alocaţi părţii zecimale. • Eexemplu reprezentarea numărului K = 42.7 pe un cod binar de 8 biţi cu 2 biţi partea zecimală este K=101010.10. In calculator nu se reprezinta punctul zecimal deci reprezentarea va fi 10101010. Potrivit convenţiei adoptate acest cod are semnificaţia de 42.5. Se observă că de fapt s-a realizat reprezentarea unei aproximări a numărului k datorită erorilor de trunchiere

  8. Reprezentarea numerelor cu semn (pozitive si negative) • Mai multe metode de reprezentare: • Semn marime • Complement de 1 • Complement de 2 • Utilizarea unui bias (in cazul reprezentarii exponentului numerelor in virgula mobila)

  9. Reprezentarea in codul semn-marime • Reprezentare prin semn-marime este identică cu reprezentarea numerelor pozitive, darprimul bit este utilizat ca bit de semn (0 pentru numere pozitive si 1 pentru numere negative). • Lungimea minimă a codului binar 'lc' pentru reprezentarea numerelor într-un domeniu (-M, M) cu o rezolutie 'r' este data de relaţia: Considerând lungimea codului formată din 'n' biţi pentru partea întreagă şi 'm' biţi pentru partea zecimală rezultă expresia numărului k reprezentat in binar prin şirul "cn-1 cn-2 ... c1 c0 c-1 c-2...c-m" Pentru a putea reprezenta numarul maxim M si respectiv numarul r, numarul minim pozitiv diferit de zero n si m trebuie sa satisfaca conditiile:

  10. Reprezentarea in codul semn-marime • Cea mai semnificativa cifra binara: • Urmatoarele cifre binare • "cn-2 ... c1 c0 c-1 c-2...c-m" • sunt o reprezentare a lui |K| în cod binar fără semn

  11. Avantajele si dejavantajele reprezentarii in cod semn-marime • Avantaje : - efectuarea fără complicaţii a operaţiei de înmulţire şi împărţire. Dezavantaje: - Necesită tratarea diferită a biţilor de semn pentru efectuarea adunării si scăderii, - Două reprezentări a numarului 0 (0000 si 1000), - Intervalul reprezentării pentru un cod de n biti este (-M, M) cu M=2n-1.

  12. Reprezentarea în complement de 1 • Prin reprezentarea numerelor negative în complement de 1 se eliminarea trataratarea diferită a biţilor de semn de a celorlalţi biţi în operaţiile de adunare scădere, principalul dezavantaj al reprezentării în cod semn-mărime. • Considerând şirul "an-1an-2 ... a1 a0 a-1 a-2...a-m" o reprezentare în complement de 1 a numărului k, se pot determina elementele şirului dupa cum urmează:

  13. Proprietati, Avantajele DezavantajeleReprezentarii in complement de 1 • Se poate demonstra că adunarea numerelor în complement de 1 se poate realiza în doi paşi fără tratarea discriminatorie a bitului de semn. În primul pas se realizează adunarea celor doi operanzi făra a se tine cont că acestia sunt numere cu semn reprezentate în complement de 1. In cel de al doilea pas la rezultat se aduna transportul generat în primul pas. • Avantaje: - Tratatarea nediscriminatorie a tutur biţilor şi în plus operatia de scadere se poate înlocui cu adunarea la desazut a complementului de 1 al scăzătorului. • Dezavantaje: - Operaţia de adunare se efectuează în doi paşi cea ce duce la scăderea vitezei de execuţie, - înmultirea este foarte greu de realizat, - Două reprezentări a numarului 0 (0000 si 1111), - Intervalul reprezentării pentru un cod de n biti este (-M, M) cu M=2n-1.

  14. Reprezentarea în complement de 2 • Este cel mai răspândit mod de reprezentare a numerelor intregi şi elimină efectuarea adunarii în doi paşi. Reprezentarea se face după un algoritm similar reprezentării în complement de 1 dar pentru numerele negative se aduna cifra 1 la codul obţinut în cazul reprezentării în complement de 1

  15. Avantajele si dezavantajele Reprezentarii in complement de 2 • Avantaje: - efectuarera adunarii prin tratatrea nediscriminatorie a bitilor de semn, - permite efectuarea scăderii prin adunarea la descăzut a complementului de doi al scăzătorului, - numarul 0 are dedicat un singur cod (toti biţi sunt 0 cea ce permite o detectare simplă a numărului 0) - intervalul de reprezentare este [-M, M) • Dezavantaje: - Operatiile de înmulţire si împărţire mai dificil decât pentru prezentarea în cod semn-mărime.

  16. Reprezentarea numerelor in virgula mobila • Este un sistem de interpretare a sirurilor de numere digitale astfel incat acestea reprezinta numere reale • Ofera o dinamica mult mai larga decat reprezentarea in virgula fixa, dinamica necesarara in calcule stiintifice si ingineresti • Nu toate microprocesoarele au capacitatea de a opera direct cu numere in virgula mobila. • Capacitatea micro-procesoarelor de a opera cu numere in virgula fixa se masoara in MFloaps (miliane de operati in virgula mobila pe secunda) • Cele mai puternice supercomputere pot atinge viteze de ordinul Tfloaps

  17. Formatul numerelor in virgula mobila • Bitul de semn (0 numere pozitive, 1 numere negative) • Exponentul (e bits) • Mantisa (f bits)

  18. Precizia reprezentarii Standardul IEEE 754 Precizie simpla, "float" in limbajul C ; “real" sau "real*4" in Fortran. - Ocupa 32 bits (4 bytes), oferind o precizie de 7 cifre zecimale (24 biti pt mantisa si bitul de semn) • Dubla precizie, "double" in limbajul C; "doubleprecision" sau "real*8" in Fortran. - Ocupa 64 biti (8 bytes) si ofera o precizie de 16 cifre zecimale ( 53 bits mantisa si semn). • Formate in virgula mobila de ordin redus pe 16 si chiar 8 bits

  19. Numere reprezentate

  20. Rotunjirea numerelor • Numerele scrise cu un numar finit de zecimale in sistemul zecimal nu pot fi reprezentate in binar pe un numar finit de biti • Ex. 0.1 din zecimal nu se poate reprezenta exact in binar • e=-4; s=1100110011001100110011001100110011..., s va fi rotunjit la 24 bits devenind • e=-4; s=110011001100110011001101 care inseamna 0.100000001490116119384765625 in zecimal.

  21. Rotunjirea numerelor • Rotunjire la cel mai apropiat numar reprezentabil • Rutunjire catre 0 • Rotunjire catre – infinit • Rotunjire catre + infinit

More Related