Informatica
Reprezentarea numerelor in calculatorReprezentarea numerelor in calculator Reprezentarea numerelor intregi fara semn: Consideram un cimp de k pozitii si un numar scris in baza p. Capacitatea unui cimp fix o putem deduce din valoarea celui mai mare intreg pozitiv pe care-l poate contine acest cimp _i anume: (1) C = pk-1 unde am notat cu C capacitatea cimpului. Fiecare pozitie in cadrul cimpului este caracterizata prin ponderea cifrei pe care o contine. Invers, putem deduce lungimea necesara unui cimp (numarul de pozitii) pentru a putea fi reprezentat un numar intr-o anumita baza, astfel: k= In aceasta reprezentare fiecare cifra zecimala a unui numar se reprezinta ca o succesiune de cifre binare, prima cifra dinspre stanga reprezentand cel mai semnificativ bit (Most Significant Bit), iar ultima cifra (prima dinspre dreapta) reprezentand cel mai putin semnificativ bit (Least Significant Bit). Exemplu: numarul binar: 10110011 se reprezinta
Figura 1 Reprezentarea numerelor intregi cu semn: Vom conveni, in cazul numerelor cu semn, ca pozitia cea mai semnificativa (cea mai din stinga) in cadrul cimpului sa indice semnul, astfel: bitul 1 - semnul '-'
In cazul numerelor cu semn avem -pk-1 < C < pk-1-1 In aceasta reprezetare exemplul de mai devreme se codifica:
Figura 2 Exemple de locatii in care se pot reprezenta numerele: bit - o cifra binara 0,1 octet - 8 biti (pot fi reprezentate numere fara semn cuprinse intre 0 .. 255 quartet - 4 biti (nibble) --> 0..15 cuvint - 16 biti (word) --> 0 .. 216 - 1 (65535) dublu cuvint - 32 biti (dword) --> 0 .. 232 - 1 cvadruplu cuvint - 64 biti (qword) --> 0 .. 264 - 1 Reprezentarea numerelor in virgula fixa: Aceasta reprezentare mai este numita si 'naturala', numarul fiind reprezentat ca o succesiune de cifre binare, impartite de o marca zecimala intr-o parte intreaga si una zecimala. In reprezentarea in virgula fixa fiecare numar se inregistreaza in memorie in locatii de lungime constanta astfel: un bit pentru codificarea semnului; un numar dat de biti pentru inregistrarea partii intregi; restul de biti sunt folositi pentru inregistrarea partii fractionare. Mentionam ca, intr-o astfel de locatie, marca zecimala nu este reprezentata in nici un fel, ea fiind virtuala.
Reprezentarea schematica a unei locatii de 14 biti, unul pentru semn, 5 pentru pastrarea partii intregi, iar 8 pentru pastrarea partii fractionare.
Figura 3 Exemplu: Numarul se reprezinta sub forma
Figura 4 iar numarul - 1100,0110101 se reprezinta sub forma:
Figura 5 Facem mentiunea ca pozitiile neocupate cu cifre semnificative se completeaza cu zerouri Aceasta reprezentare limiteaza game numerelor ce pot fi inregistrate in memoria unui calculator. Astfel, daca i este numarul bitilor rezervati partii intregi, iar f este numarul bitilor rezervati partii fractionare, numarul maxim care poate fi reprezentat este:
Figura 6 La efectuarea operatiilor aritmetice asupra numerelor reprezentate in virgula fixa se pot obtine rezultate a caror parte intreaga sa contina mai multe cifre decat numarul bitilor locatiei rezervate acestui scop. In acest caz spunem ca avem o depasire a capacitatii locatiei. Rezulta ca o depasire a capacitatii locatiei duce la deformarea rezultatului. Pentru evitarea acestui lucru se folosesc asa-numitii factori de scara, cu care se amplifica in prealabil toate numerele ce intervin in rezolvarea problemei respective. Reprezentarea numerelor in virgula mobila (flotanta): Daca in cazul reprezentarii in virgula fixa a numerelor sarcina de a tine evidenta marcii zecimale revine programatorului, in cazul numerelor reprezentate in virgula mobila, aceasta sarcina cade in seama calculatorului. Pentru a reprezenta un numar real r in virgula mobila el trebuie scris sub forma:
unde M, b, E poarta respectiv denumirea de mantisa, baza si exponent. O astfel de reprezentare nu este unica. De exemplu, in baza 10, vom avea:
Inlaturam acest inconvenient convenind sa consideram acea reprezentare in care mantisa M satisface relatia:
numita reprezentare normala (normalizata). Rezulta atunci, ca pentru reprezentarea unui astfel de numar, bitii unei locatii sunt impartiti in 4 grupe, pentru marcarea semnului mantisei, cifrelor partii fractionare ale mantisei, semnului exponentului si a exponentului. Ca urmare, structura unei locatii cu n pozitii pentru inregistrarea mantisei si m pozitii pentru inregistrarea exponentului, va avea forma:
Figura 7 Exemplu: Fie numarul: r Intr-o locatie a dispozitivului de memorie cu m = 4 si n = 10 va fi reprezentat sub forma:
Figura 8 Si in cazul acestei reprezentari gama numerelor ce pot fi folosite este limitata. Se observa ca valoarea maxima a exponentului este:
m biti si ca mantisa este subuitara. Deci, numarul real x cu proprietatea nu poate fi reprezentat. O multime finita E de numere reale in intervalul sunt reprezentabile prin valoarea lor exacta, celelalte fiind reprezentate aproximativ prin cel mai apropiat punct din E. Reprezentarea numerelor in cod complementar fata de 1 (cod invers): Pentru a obtine complementul fata de 1 al unui numar binar, se inverseaza toate cifrele numarului. Se poate scrie relatia: Ncmpl1 = 2n-1 - abs(N)-1 unde: n = lungimea cimpului care contine numarul (inclusiv semnul !!) abs(N) - numarul in valoare absoluta Ex: 0101 ----->(complement 1) 1010 Reprezentarea numerelor in cod complementar fata de 2 (cod direct) Pentru a obtine complementul fata de 2 al unui numar binar, sunt doua metode: - se obtine complementul fata de 1 si se aduna 1 - se inverseaza toate cifrele numarului de la dreapta la stinga pana la ultimul 1 Se pot scrie relatiile: Ncmpl2 = 2n-1 - abs(N) Ncmpl1 = Ncmpl2 - 1 sau Ncmpl2 = Ncmpl1 + 1 Ex: 0101 ---->(complement 1) 1010 + 1 ---- 1011 sau: 0101 ---> (direct, complement 2) 1011
|