Documente Academic
Documente Profesional
Documente Cultură
1
1 Reprezentarea informaiilor
1.1 Scopul lucrrii
In aceast lucrare se urmrete identificarea tipurilor de informaii reprezentate ntr-un calculator i definirea modurilor de codificare a acestora n vederea memorrii, prelucrrii i transmiterii.
Pentru fiecare tip de informaie exist una sau mai multe forme de reprezentare (codificare). Alegerea unei anumite forme de codificare se face n funcie de anumite obiective urmrite, cum ar fi: reprezentarea coerent, univoc a informaiilor n vederea stocrii, transmiterii i a prelucrrii acestora utilizarea eficient a spaiului alocat (spaiu minim) detecia i corecia erorilor facilitarea (simplificarea) operaiilor de prelucrare, stocare i transmitere securizarea datelor
n schimb n reprezentarea binar numrul de cifre necesare pentru reprezentarea unei anumite valori este mai mare dect n alte sisteme de numeraie. Pentru om este dificil memorarea sau interpretarea unor secvene lungi de cifre, ns este mai uor de memorat un numr mai mare de reguli. De aceea omul prefer sistemul zecimal n locul celui binar. De exemplu un numr de telefon de 6 cifre n zecimal (ex. 987123), relativ uor de reinut, are o reprezentare pe 20 de cifre n binar (11110000111111110011).
Pentru reprezentarea numerelor cu parte fracionar s-a introdus nc un simbol suplimentar, si anume punctul zecimal. Toate cifrele care urmeaz dup punctul zecimal sunt ponderate cu puteri negative ale bazei, dup cum urmeaz: reprezentare: Xb -> xn...x2x1x0 x-1x-2...x-m calculul valorii: Xb = xn*bn+...x2*b2+x1*b1+x0+ x-1*b-1+x-2*b-2+.... x-m*b-m
Se observ c n cazul conversiei prii fracionare de cele mai multe ori nu se obine un rezultat exact. Procesul de conversie se ncheie atunci cnd se obine o precizie rezonabil de exprimare a valorii fracionare. De exemplu n multe aplicaii inginereti o precizie de 2 cifre zecimale dup virgul se consider o precizie acceptabil. ntrebarea este cte cifre binare sunt necesare pentru o precizie similar? La exprimarea n baza zece, prin dou cifre dup punctul zecimal se obine o eroare maxim de 1/100. n baza 2 pentru o precizie similar trebuie s se utilizeze 7 cifre binare pentru a obine o eroare maxim de 1/128, adic 1/27. (Observaie: eroarea maxim este egal cu cea mai mic unitate exprimabil prin numrul dat de cifre). n mod similar pentru o precizie mai mare de 1/1000 (3 cifre zecimale dup punct) sunt necesare 10 cifre binare (1/1024 = 1/210). Poziia punctului zecimal nu se reprezint n calculator. Prin convenie se consider ntr-o poziie predefinit. De exemplu pentru reprezentarea numerelor strict ntregi poziia punctului zecimal se consider n dreapta reprezentrii (dup cifra cea mai puin semnificativ). Din aceast cauz aceast codificare poart numele de "reprezentare n virgul fixa". n mod paradoxal pentru operaiile de adunare i scdere poziia punctului zecimal nu influeneaz rezultatul generat. Situaia este diferit pentru operaiile de nmulire i mprire, unde poziia punctului n rezultat se schimb. Pentru a face trecerea de la sistemul zecimal la cel binar i invers adesea se utilizeaz un sistem de numeraie intermediar, care se apropie de ambele sisteme. De exemplu sistemul hexazecimal este utilizat n acest scop deoarece, pe de-o parte permite exprimarea unor valori printr-un numr rezonabil de cifre, iar pe de alt parte se poate converti relativ simplu n sistemul binar. n cazul n care se vizualizeaz coninutul unei zone de memorie sau a unor registre informaia este prezentat n format hexazecimal, chiar dac n calculator informaia
este n binar. De asemenea programatorii n limbaj de asamblare prefer forma hexazecimal n locul celei zecimale pentru c se apropie mai mult de forma de reprezentare din calculator. Convertirea unui numr din sistemul binar n sistemul hexazecimal si invers se face prin gruparea biilor cte 4, ncepnd de la punctul zecimal spre dreapta i spre stnga i echivalarea cte unei cifre hexazecimale cu o combinaie de 4 bii. Tabelul 1.1 indic echivalena binar hexazecimal zecimal. Binar 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Hexazecimal 0 1 2 3 4 5 6 7 8 9 A B C D E F Zecimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Exemple de conversie binar hexazecimal i invers: 1011.0011.1100.112 => B3.CC16 101 1111.0112 => 5.F616 1FD16 => 1.1111.11012 33.316 => 11.0011 0011
13010 -> valoarea absolut nu se poate reprezenta pe 7 bii => reprezentarea se poate face numai pe un numr mai mare de bii 13010 -> 0000.0000.1000.00102 -13010 -> 1000.0000.1000.00102 Aceast form de reprezentare este simpl, dar nu este avantajoasa pentru implementarea operaiilor aritmetice. Unitatea aritmetic trebuie s in cont de semnul operanzilor.
Reprezentarea n complement fa de 2 este avantajoas deoarece simplific modul de calcul al operaiilor aritmetice. La operaiile de adunare i scdere unitatea aritmetic nu trebuie s in cont de semnul operanzilor, rezultatul generat fiind corect indiferent de semn. Mai mult rezultatul este corect i n cazul n care se consider c reprezentrile sunt numere strict pozitive. Pe baza acestei observaii se poate utiliza aceeai unitate de adunare/scdere att pentru numere pozitive ct i pentru numere cu semn. De exemplu: Numere cu semn -64+ 16 -48 1100.0000+ 0001.0000 1101.0000 ->208 0011.0000 -> 48 Numere fr sem 192+ 16 208
Astzi toate calculatoarele utilizeaz reprezentarea n complement fa de 2. celelalte doua forme s-au folosit la primele calculatoare. ATENIE !!! Reprezentarea n complement fa de 2 a unui numr pozitiv nu nseamn complementarea numrului, ci reprezentarea sa n form pozitiv, care este identic n cele trei forme de reprezentare (SM, C1 i C2). La reprezentarea n complement fa de 2, dac se trece de la o reprezentare pe 8 bii la una pe 16 bii sau mai mare atunci este necesar extinderea semnului, n aa fel nct n noua
reprezentare valoarea i semnul numrului s se pstreze. Regula const In copierea valorii bitului de sem n fiecare poziie binar a poriunii extinse. De exemplu:
Valoare -5 0 5
n practic se utilizeaz 3 formate de reprezentare n virgul flotant: - simpl precizie 32 bii 1 semn + 8 caracteristic + 23 mantis - dubl precizie 64 bii 1 semn + 11 caracteristic + 52 mantis - format extins 80 bii 1 semn + 24 caracteristic + 56 mantis Muli echivaleaz n mod greit reprezentarea n virgul flotant cu mulimea numerelor reale din matematic. Exist cteva deosebiri eseniale: - n virgul flotant se reprezint valori discrete i nu domeniu continuu de valori - nu pot fi reprezentate numere foarte mari sau foarte mici; de exemplu sunt probleme n ceea ce privete reprezentarea valorii zero i a valorilor +/- - rezoluia absolut de reprezentare variaz cu valoarea reprezentat - compararea a dou valori flotante poate genera surprize datorit preciziei de reprezentare i a rotunjirilor
asemntor cu reprezentarea hexazecimal cu diferena c se utilizeaz numai primele 10 combinaii de bii: 010 -> 00002, 110 -> 00012, 210 -> 00102, ..... 910 -> 10012 ; celelalte combinaii sunt nepermise (ex. 1010, ... 1111) Procesoarele Intel au instruciuni n limbaj de asamblare care suport operaii aritmetice n reprezentarea BCD. Codurile cifrelor zecimale se pstreaz fie individual pe cte un octet (forma despachetat), fie cte 2 cifre pe un octet (forma mpachetat).
D11D10
D9 D8 cuvnt
D7
D6 D5
D4
D3 D2
D1 D0
Dac o dat este reprezentat pe un numr mai mare de octei atunci se pune problema modului de amplasare a octeilor la adrese consecutive de memorie. Exist dou convenii de reprezentare: - little endian partea mai puin semnificativ a datei se amplaseaz la adrese mai mici (se pune n fa) - big endian partea mai semnificativ a numrului se pune la adrese mai mici (se pune n faa) De exemplu n convenia little endian o valoare hexazecimal de forma 12345678h se memoreaz la adresa fizic 100h n felul urmtor:
78h 100h
56h 101h
34h 102h
12h 103h
Coduri de control al transferului XON- pornire transmisie 11h XOFF- oprire transmisie 13h
Standardul "unicode" extinde codificarea ASCII prin adugarea unui octet suplimentar. Astfel anumite litere speciale (litere greceti, litere arabe, litere cu semne speciale, etc.) sau semne grafice sunt reprezentate pe 16 bii.
Pentru imagini n micare (film) se achiziioneaz cadre (imagini statice) cu o frecven de eantionare cuprins ntre 10Hz (film de slab calitate, transmisibil pe o legtur Internet de mic vitez) i 50-70Hz (film de calitate TV sau chiar mai bun). n aceste condiii memorarea unei informaii video de 10 secunde la o rezoluie i calitate acceptabil necesit un spaiu de memorie de: (3 octei/pixel)*(1000 pixeli/linie)*(700 linii/cadru) *(50 cadre/sec.)*10 secunde = 1.050.000.000 octei =1Goctet. Este de remarcat faptul c actualele calculatoare personale nu dispun de o memorie intern care s memoreze o astfel de informaie. De aceea i n cazul informaiilor video se impune utilizarea unor metode eficiente de compactare, care s reduc spaiul necesar de memorare. Majoritatea metodelor de compactare sunt cu pierdere de informaie; pentru un factor de compactare mai mare se face un compromis n ceea ce privete calitatea imaginii.
8. S se descrie n pseudocod cteva tehnici de compactare a informaiei (ex: codificarea secvenelor lungi de aceeai valoare, codificarea variaiilor ntre eantioane consecutive, etc.)