![]() | |
![]() |
![]() ![]() |
Politica de confidentialitate |
|
![]() | |
• domnisoara hus • legume • istoria unui galban • metanol • recapitulare • profitul • caract • comentariu liric • radiolocatia • praslea cel voinic si merele da aur | |
![]() |
![]() |
|||||||||||||||||||||||||||||||||
Arhitectura calculatoarelor - reprezentarea in virgula fixa | |||||||||||||||||||||||||||||||||
![]() |
|||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||
fractionare, subunitare. Daca virgula este asezata dupa cifra c.m.p.s., se opereaza cu numere intregi. In continuare se presupune aceasta pozitionare, considerand ca se lu- creaza cu numere intregi. In forma cu virgula mobila, fiecare numar este caracterizat prin doua valori: • Mantisa, care indica marimea exacta a numarului intr-un anumit domeniu; • Exponentul, care indica ordinul de marime a numarului, fiind puterea la care se ridica baza mantisei. Exponentul indica deci implicit pozitia virgulei binare.
2.5. Reprezentarea numerelor in virgula fixa
2.5.1. Reprezentarea numerelor cu semn In continuare se vor nota cu x, y numerele in reprezentarea binara obisnuita, la care se ataseaza semnul. Un numar cu n cifre de marime se va scrie sub forma: ± x = ± x n-1 x n-2 … x1 x0 De exemplu: ± 6 = ± 0110 Se vor nota cu X, Y numerele in reprezentarea din calculator, care contin si cifrele de semn: X = xn x x… x1 x0 Dupa modul de exprimare a numerelor negative, exista trei forme uzuale de n-1 n-2 reprezentare a numerelor cu semn in virgula fixa: • In marime si semn (MS); • In complement fata de 1 (C1); • In complement fata de 2 (C2). Pentru toate formele, un numar pozitiv se exprima in acelasi fel: n 1 X = 0 ⋅ 2 n + ∑- x i 2 i = 0 ⋅ 2 n + x (2.21) i = 0 Numarul pozitiv cu semn se reprezinta deci adaugand cifra 0 de semn in fata numarului fara semn: X = 0 x x… x1 x0 Consideram pentru simplitate numere cu 4 biti de marime si un bit de semn. De n-1 n-2 exemplu, numarul fara semn 5 se reprezinta prin: 2. Bazele aritmetice ale calculatoarelor 21 iar numarul cu semn +5 prin: +5 0 0101 Cea mai simpla forma de reprezentare este cea in marime si semn. Un numar negativ reprezentat in marime si semn are expresia: n 1 X = 1 ⋅ 2 n + ∑- x i 2 i = 1 ⋅ 2 n + x (2.22) i = 0 Deci, numarul negativ se reprezinta prin adaugarea cifrei 1 de semn in fata numarului fara semn: x… x1 x0 De exemplu, numarul -5 se va reprezenta prin: X = 1 x n-1 n-2 -5(MS) 1 0101 Exista mai multe dezavantaje ale acestei reprezentari. Prima este ca adunarea si scaderea necesita circuite mai complexe. A doua este ca exista doua reprezentari pentru valoarea 0: +0 0 0000 -0 1 0000 De aceea este mai dificil sa se testeze daca o valoare este 0 (o operatie frec- venta), decat in cazul in care ar exista o singura reprezentare. In cazul reprezentarii in complement fata de 1, un numar negativ se reprezinta prin complementul fata de 1 al numarului pozitiv cu aceeasi valoare absoluta. Comple- mentul fata de 1 al unui numar binar se obtine prin inlocuirea bitilor de 1 cu 0, si a celor de 0 cu 1. Un numar negativ reprezentat in complement fata de 1 are expresia: n - 1 X = 1 ⋅ 2 n + ∑ x i 2 i = 2 n + 1 - x - 1 (2.23) i = 0 unde x i = 1 - x reprezinta complementul fata de 1 al cifrei xi. Complementul fata de 1 al unui numar negativ se obtine prin complementarea i tuturor cifrelor numarului fara semn si adaugarea cifrei de semn 1: X = 1 x n - 1 x n - 2 ... x 1 x 0 De exemplu: +5 0 0101 -5(C1) 1 1010 Exista si in acest caz doua reprezentari pentru 0: +0 0 0000 -0 1 1111 Un numar negativ reprezentat in complement fata de 2 are expresia: 22 Arhitectura calculatoarelor
n - 1 X = 1 ⋅ 2 n + ∑ x i 2 i + 1 ⋅ 2 0 = 2 n + 1 - x (2.24) i = 0 Complementul fata de 2 al unui numar se poate obtine in mai multe moduri. O posibilitate o reprezinta utilizarea relatiei de definitie (2.24). De exemplu, considerand n = 4, complementul fata de 2 al numarului –5 va fi: 24+1 – 5 = 32 – 5 = 27 = 11011 O alta posibilitate este obtinerea complementului fata de 2 in doua etape: 1. Se obtine complementul fata de 1. 2. Se considera rezultatul ca un intreg fara semn, la care se aduna valoarea 1. De exemplu: +5 0 0101 -5(C1) 1 1010 + 1 -5(C2) 1 1011 Practic, complementul fata de 2 al unui numar se poate determina pornind de la numarul pozitiv cu semn, astfel: 1. Se scriu cifrele numarului incepand cu cifra c.m.p.s., neschimbate, pana la pri- mul 1 inclusiv. 2. Se complementeaza cifrele intalnite in continuare. Exista o singura reprezentare pentru 0 in C2. In plus, operatiile de adunare si scadere se efectueaza cel mai simplu in aceasta reprezentare. Se poate arata ca repre- zentarea prin C2 conduce la aflarea valorii reale a numarului, daca cifra de semn se con- sidera negativa. In cazul reprezentarii in MS si C1, gama numerelor care pot fi exprimate prin n biti de marime este: -(2n - 1) = x = 2n - 1 Pentru reprezentarea in C2, aceasta gama este: n- 1 De exemplu, pentru numere de un octet (7 cifre de marime si o cifra de semn), -2n = x = 2 gama pentru reprezentarea in MS si C1 este: -(27 - 1) = x = 27 - 1 adica: -127 = x = 127 iar in C2: 2. Bazele aritmetice ale calculatoarelor 23 In Tabelul 2.5 se prezinta reprezentarea unor numere cu 4 biti de marime si un bit de semn in MS, C1 si C2. Tabelul 2.5. Diferite moduri de reprezentare a unor numere cu semn. X MS C1 C2 +15 0 1111 0 1111 0 1111 +14 0 1110 0 1110 0 1110 … +2 0 0010 0 0010 0 0010 +1 0 0001 0 0001 0 0001 0 0 0000 1 0000 0 0000 1 1111 0 0000 -1 1 0001 1 1110 1 1111 -2 1 0010 1 1101 1 1110 … -14 1 1110 1 0001 1 0010 -15 1 1111 1 0000 1 0001 -16 - - 1 0000
2.5.2. Reguli de deplasare a numerelor cu semn De multe ori sunt necesare operatii de deplasare a numerelor cu semn. Aceste deplasari trebuie efectuate astfel incat sa se modifice numai valoarea numerelor, nu si semnul. Deplasarea la stanga cu o pozitie este echivalenta inmultirii cu 2, iar deplasarea la dreapta este echivalenta impartirii cu 2 (inmultirii cu 2-1). Pentru stabilirea regulilor de deplasare, se considera exemplele din Tabelul 2.6. Tabelul 2.6. Stabilirea regulilor de deplasare a numerelor cu semn. MS C1 C2
La deplasare participa numai cifrele de marime ale numerelor. Din analizarea tabelului rezulta urmatoarele: 24 Arhitectura calculatoarelor • In cazul deplasarii numerelor pozitive, in pozitiile ramase libere dupa deplasa- rea la stanga sau la dreapta se introduc cifre de 0. • La numerele negative reprezentate in MS, in pozitiile ramase libere dupa o de- plasare la stanga sau la dreapta se introduc cifre de 0. • La numerele negative reprezentate in C1, in pozitiile ramase libere dupa o de- plasare la stanga sau la dreapta se introduc cifre de 1. • La numerele negative reprezentate in C2, in pozitiile ramase libere dupa o de- plasare la stanga se introduc cifre de 0, iar dupa o deplasare la dreapta se introduc cifre de 1 (deci, se repeta semnul numarului).
2.5.3. Operatii cu numere reprezentate in virgula fixa
2.5.3.1. Adunarea numerelor reprezentate in C2 Metodele de adunare si scadere a numerelor reprezentate in C2 demonstreaza avantajele acestei reprezentari. Aceste operatii se pot efectua ca si in cazul numerelor fara semn. Consideram cateva exemple de adunare. In primele exemple, numerele sunt de acelasi semn. a) + 9 0 1001 + 5 0 0101 +14 0 1110 Rezultatul este corect. b) + 9 0 1001 +11 0 1011 +20 1 0100 Se obtine un numar negativ, deci rezultatul este incorect. Deoarece +20 > 24 = 16, se depaseste capacitatea de reprezentare a rezultatului. c) - 9 1 0111 - 5 1 1011 -14 !1 0010 Rezultatul este corect, deoarece -14 > -24 = -16. Se obtine un numar negativ reprezentat in C2. Apare un transport de la cifra de semn, care se neglijeaza. d) - 9 1 0111 -11 1 0101 -20 !0 1100 Rezultatul este eronat, deoarece se obtine un numar pozitiv. In exemplele urmatoare, numerele sunt de semne contrare. 2. Bazele aritmetice ale calculatoarelor 25
e) + 7 0 0111 - 4 1 1100 + 3 !0 0011 f) - 7 1 1001 + 4 0 0100 - 3 1 1101 In cazul numerelor de semne contrare, rezultatul este intotdeauna corect, deoa- rece nu poate apare depasire de capacitate. Din exemplele prezentate, se poate formula |
|||||||||||||||||||||||||||||||||
![]() |
|||||||||||||||||||||||||||||||||
![]() |
|||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||
Copyright© 2005 - 2025 | Trimite document | Harta site | Adauga in favorite |
![]() |
|