Documente Academic
Documente Profesional
Documente Cultură
Definirea codului
Prin A+ vom nota multimea tuturor cuvintelor ce se pot forma cu litere din A. Deci:
Un cod pentru care toate cuvintele de cod au aceeasi lungime n se numeste uniform, iar
n se numeste lungimea codului. In acest caz avem
.
Codurile care nu sunt uniforme se numesc coduri neuniforme.
Problema decodificarii
Codificarea caracterelor
Fie
Consideram multimile:
- multimea caracterelor speciale
Vom nota .
unde n este 127 sau 255. Daca consideram reprezentarea binara avem de-a face cu un
cod omogen pe 7 sau 8 biti.
1)
2)
3)
4) Intervale:
si multimea C(S)
In prezent, cel mai folosit sistem de codificare este ASCII (American Standard Code
for Information Interchange) care foloseste pentru codificare numerele intregi din
intervalul [0,127]. Fata de conditiile 1 4 de mai sus, acest cod mai verifica relatiile:
5)
In acest scop s-au folosit numere din intervalul 128 255. Avem de-a face, astfel, cu un
cod omogen pe 8 biti.
.
Regula practica pentru determinarea reprezentarii:
b) Daca numarul este negativ, se reprezinta initial modulul sau, apoi se inverseaza toti
bitii acestei reprezentari obtinand codul invers. In final se aduna cifra 1 in binar in
pozitia cea mai putin semnificativa, obtinandu-se codul complementar fata de 2.
n = 8 [-127,127]
n = 16 [-32767,32767]
n = 32 [-2147483647, 2147438647]
Exemple
125(10) = 1111101(2)
000000001111101
15 14 . . . 2 1 0
000000000011010
15 14 . . . 2 1 0
111111111100101
15 14 . . . 2 1 0
111111111100110
15 14 . . . 2 1 0
Codul complementar este cel mai folosit de catre sistemele de calcul pentru aritmetica
numerelor intregi. pentru a defini suma algebrica, vom privi [x]c ca pe un sir de n biti,
reprezentand un numar in baza 2.
Un numar real x, x 0 este scris cu mantisa intre 1 si 2, daca x se scrie, in baza 2, astfel:
Este evident ca orice numar real nenul accepta o astfel de repezentare. Aceasta
reprezentare se numeste reprezentare in virgula flotanta (mobila).
zona pentru reprezentarea mantisei. Mantisa este numarul 1,m. Partea intreaga nu
se reprezinta, ca avand intotdeauna valoarea 1. Din partea fractionara se retine
un numar constant si finit de cifre:
Societatea de calculatoare IEEE a fost cea care s-a preocupat si a elaborat norme de
reprezentare a numerelor in virgula flotanta (mobila). Practic toate firmele care fabrica
astazi calculatoare si-au insusit aceste norme si le-au implementat. Pe langa standardele
IEEE, firma Borland foloseste la implementarea Turbo Pascal alte doua moduri de
reprezentare. Aceste moduri de reprezentare sunt redate in figura 1.
Fig.1 Standardele de reprezentare a numerelor reale
Standardele IEEE deosebesc 5 cazuri care pot sa apara la reprezentarea unui numar:
Exemple de reprezentari. mai intai vom arata cum se converteste un numar real in
virgula flotanta. Se considera numarul: (-3572,54)10
pe care intentionam sa-l reprezentam in formatul IEEE simpla precizie, IEEE dubla
precizie si REAL Turbo Pascal.
Mai intai ii vom converti in baza 16, retinand 14 cifre hexazecimale semnificative, care
sunt suficiente pentru reprezentarile pe care le avem in vedere, si obtinem numarul:
(-DF4,8A3D708A3D7)16
(-110111110100, 10001010001111010111000010001010001111010111)2.
Acum il punem in forma nominalizata, asa cum am aratat mai sus, si retinem numai 52
de cifre dupa virgula:
(-1,1011111010010001010001111010111000010001010001111010)2
Din aceasta forma vom prelua, incepand cu bitul dupa virgula, atatia biti cati sunt
necesari pentru partea de mantisa a fiecarei reprezentari. Rescriem numarul rezultat in
baza 16:
(-1,BE1947AE1147)16
- simpla precizie:
- dubla precizie:
- TURBO Pascal:
Simpla precizie:
Dubla precizie.
C0ABF9147AF1147
A
DF48A3D7088C