Creeaza.com - informatii profesionale despre


Simplitatea lucrurilor complicate - Referate profesionale unice
Acasa » scoala » informatica
Reprezentarea numerelor zecimale in virgula fixa

Reprezentarea numerelor zecimale in virgula fixa


Reprezentarea numerelor zecimale in virgula fixa

In mod normal, lumea exterioara calculatorului utilizeaza aritmetica zecimala, iar in interiorulacestuia se lucreaza in sistemul de numeratie binar. Drept urmare, la introducerea datelor, este reclamata o operatie de conversie din zecimal in binar, iar, la extregerea rezultatelor, se impune o conversie inversa, din binar in zecimal. Aceste operatii se realizeaza, la convertirea din zecimal in binar, prin intermediul cunoscutelor metoda a resturilor (remainder method) pentru partea intreaga a numerelor, respectiv meetoda multiplicativa (multiplication method) pentru partea fractionara a numerelor si, la conversia din binar in zecimal, prin evaluari polinomiale [Parh00]. Chiar daca principial simple, aplicarea respectivelor metode implica timpi de calcul semnificativi, ori, exista unele aplicatii, spre exemplu, din domeniul bancar, la care predomina in mod accentuat operatiile de conversie, restul reclamand calcule simple. In special pentru aceste aplicatii, in baza aceleiasi legi a lui Amdahl, se impune ca operatiile de conversie sa fie simple pentru a putea fi realizate rapid eficientizand astfel calculele [Omon94].

Dezideratelor mentionate corespund unele coduri numerice a caror caracteristica este conversia fiecarei cifre zecimale, in mod separat, intr-o combinatie binara, permitand astfel realizarea rapida a operatiei. Exista o familie numeroasa de astfel de coduri, denumite si zecimale, dar referirile noastre se restrang la reprezentarile zecimale cu codificare binara (binary-coded decimal, BCD), exces de trei (excess-three, E3) si doi din cinci (two-out-of-five, 2-out-of-5) ale caror echivalenti binari ai cifrelor zecimale sunt dati in tabelul din fig.1.6. Denumirea BCD se potirveste pentru cele trei coduri, si in general, pentru reprezentarile zecimale, pentru ca presupune codificarea in binar a fiecarei cifre zecimale. Totusi, uzual, aceasta denumire este rezervata pentru acel cod zecimal care aloca la fiecare cifra zecimala o tetrada binara (patru cifre binare), ale carei biti au asociate variate ponderi.



De cea mai larga utilizare se bucura codul BCD 8421, pe scurt BCD, a carui bit cel mai semnificativ are alocata ponderea 23 = 8, respectiv a carui bit cel mai putin semnificativ are alocata ponderea 20 = 1. in acest mod, conversia din zecimale in BCD este imediata, spre exemplu, pentru corespunde , fara a mai apela la vreo operatie aritmetica, doar consultand tabelul din fig.1.6. Legat de codul BCD remarcam faptul ca el este un cod pozitional, fiecare bit avand o pondere de 10i 2j, unde exponentul i corespunde unei cifre zecimale, numerotarea lui fiind crescatoare inspre stanga, incepand cu i=0 pentru cea mai putin semnificativa cifra zecimala, iar exponentul j corespunde unui bit al tetradei, numerotarea lui fiind crescatoare inspre stanga, de la 0 la 3. astfel, ponderea bitului marcat din reprezentarea BCD al numarului 23, 0010 0011, este 101*21=20. Codurile zecimale, in general, folosesc la conversia unui numar zecimal mai multi biti decat codul binar. In particular, avand cuvinte de n biti care permit codificarea binara a 2n numere fara semn, codul BCD expus permite codificarea a doar 10n = 20,83n numere. Mai mentionam ca operarea numerelor BCD se realizeaza, in mod uzual, in formatul SM, iar adunarea, prin faptul ca variatia de pondere dintre doi biti, pozitinal adiacenti, nu este intodeauna 2, fiind uneori (penru biti alaturati situati la interfata dintre doua cife zecimale). 10i+1 * 20/ 10i * 23 = 10/8 necesita ajustarea selectiva a unora dintre tetrade prin asa numita corectie de 6, asa cum se prezinta in capitolul urmator.

In ceea ce priveste codul zecimal E3, asa cum poate fi remarcat in fig.1.6, el se formeaza adunand la codul BCD, pentru fiecare cifra zecimala, a valorii 310=00112 reprezentand asa numitul deplasament (bias) sau exces, justificand astfel denumirea reprezentarii. Astfel, numarul admis ca exemplul anterior, 937410, are reprezentare E3 data de 1100 0110 1010 0111E3. Folosind tot patru biti pentru codificarea unei cifre zecimale, avand cuvinte de n biti, codul E3 permite reprezentarea a doar aproximativ 20,.83n numere fara semn. In detrimentul faptului ca nu constituie un cod ponderat, reprezentarea E3 prezinta o anume importanta intrucat simplifica intrucatva operatia de adunare fata de cea executata in BCD, asa cum va rezulta din urmatorul capitol. In fine, codul zecimal 2-out-of-5 aloca, pentru codificarea fiecarei cifre zecimale, cinci biti, dintre care doi au valoarea 1, iar restul de trei au valoarea 0. Astfel, acelasi numar 937410 are reprezentarea 2-out-of-5 data de 10100 00110 10001 01001. La aceiasi dimensiune a cuvantului, acest cod permite reprezentarea mai putinor numere decat celelalte doua coduri zecimale expuse, si, in plus, nu cod pozitional, ponderat. Aceste neajunsuri sunt contrabalansate prin calitatea pe care o are acest cod de a permite detectia erorii singulare, facilitand, de asemenea, localizarea acesteia la nivelul unui cuvant binar (cinci biti) care codifica o cifra zecimala. Orice eroare singulara modifica numarul unitatilor binare ale unui cvintet, fapt care poate fi urmarit si detectat printr-un arbore simplu de circuite EXCLUSIVE-OR, care calculeaza suma modulo 2 a bitilor unui cvintet. Prevazand un astfel de arbore la fiecare cifra zecimala si efectuand o operatie OR intre iesirile tuturor arborilor,eroarea poate fi pusa in evidenta. In acest mod, avem de-a face cu o reprezentare apartinand familiei codurilor detectoare si corectoare de erori, de importanta crescanda in contextul unei necesitati tot mai acute de securitate a informatiei.





Politica de confidentialitate


creeaza logo.com Copyright © 2024 - Toate drepturile rezervate.
Toate documentele au caracter informativ cu scop educational.