Documente Academic
Documente Profesional
Documente Cultură
1. STRUCTURI SI ARHITECTURI DE
CALCULATOARE NUMERICE
13.01.2004 1 / 39
Capitolul 1 - Structuri si arhitecturi de calculatoare numerice
1. STRUCTURI SI ARHITECTURI DE
CALCULATOARE NUMERICE
IA
Prelucrari de
cunostinte Creste volum
Creste de prelucrare
Prelucrari de
complexitate de
informatii
prelucrare Prelucrari
de date
13.01.2004 2 / 39
Capitolul 1 - Structuri si arhitecturi de calculatoare numerice
13.01.2004 3 / 39
Capitolul 1 - Structuri si arhitecturi de calculatoare numerice
13.01.2004 4 / 39
Capitolul 1 - Structuri si arhitecturi de calculatoare numerice
Translatare ( compilare)
Translatare ( asamblare)
Interpretare ( microprogram)
Nivelul 1 Microprogram
Microprogram executat direct de
componenta hardware
13.01.2004 5 / 39
Capitolul 1 - Structuri si arhitecturi de calculatoare numerice
13.01.2004 7 / 39
Capitolul 1 - Structuri si arhitecturi de calculatoare numerice
U U
RCC
RS RS
RT
RM RP
RS
U
Fig. 1-3. Structura generala a unui sistem de calcul.
13.01.2004 11 / 39
Capitolul 1 - Structuri si arhitecturi de calculatoare numerice
13.01.2004 12 / 39
Capitolul 1 - Structuri si arhitecturi de calculatoare numerice
13.01.2004 13 / 39
Capitolul 1 - Structuri si arhitecturi de calculatoare numerice
13.01.2004 15 / 39
Capitolul 1 - Structuri si arhitecturi de calculatoare numerice
13.01.2004 16 / 39
Capitolul 1 - Structuri si arhitecturi de calculatoare numerice
13.01.2004 19 / 39
Capitolul 1 - Structuri si arhitecturi de calculatoare numerice
a
i1 c1 o1 i2 c2 o2 i3 c3 o3
P1 P2 P3
i1 c1 o1
i2 c2 o2 ∆
i3 c3 o3
c1 c2 c3 UCP
i1 i2 o1/i3 o2 o3 I/E
13.01.2004 20 / 39
Capitolul 1 - Structuri si arhitecturi de calculatoare numerice
P1
i3 c3 c3 c3 o3
P2
i2 c2 c2 o2
P3
i1 c1 c1 c1 o1
UCP
c3 c2 c1 c3 c2 c1 c3 c1
I/E
i3 i2 i1 o2 o3 o1
Unitate logica
si aritmetica
Dispozitiv Dispozitiv
de intrare Acumulator
de iesire
13.01.2004 22 / 39
Capitolul 1 - Structuri si arhitecturi de calculatoare numerice
13.01.2004 23 / 39
Capitolul 1 - Structuri si arhitecturi de calculatoare numerice
13.01.2004 24 / 39
Capitolul 1 - Structuri si arhitecturi de calculatoare numerice
13.01.2004 25 / 39
Capitolul 1 - Structuri si arhitecturi de calculatoare numerice
SD
SI1
SI1
UC1 UP1
MP
MM 1 MM n
SIn SIn
UCn UPn
13.01.2004 26 / 39
Capitolul 1 - Structuri si arhitecturi de calculatoare numerice
SI1 SD1
SI1
UC1 UP1 MM 1 MP
Magistrala de memorie
ML ML ML ML
Retea
Fig. 1-12. Arhitectura MIMD shared memory.
13.01.2004 27 / 39
Capitolul 1 - Structuri si arhitecturi de calculatoare numerice
Ideal
Performante
Real
Fig. 1-13. Limitarea performantelor
la masinile MIMD shared memory
2 4 6 8 10 12 14 16 18 20 22 24 26
Numar de procesoare
În cazul sistemelor MIMD shared nothing, fig. 1-14, fiecare
procesor are propria lui memorie, masinile fiind practic calculatoare
independente (noduri) legate într-o retea.
Retea
Fig. 1-14. Arhitectura MIMD shared nothing.
13.01.2004 28 / 39
Capitolul 1 - Structuri si arhitecturi de calculatoare numerice
n
Criteriul este reprezentat de gradul de paralelism în procesarea
datelor organizate matriceal. Conform acestui criteriu exista patru tipuri de
arhitecturi si anume:
- WSBS (Word Serial – Bit Serial) – se lucreaza pe un singur
cuvânt, fiecare cuvânt fiind prelucrat bit cu bit, respectiv ns1, ms1;
- WSBP (Word Serial – Bit Paralel) – se lucreaza pe un singur
cuvânt, bitii fiecarui cuvânt fiind prelucrati simultan, respectiv
n>1, ms1;
- WPBS (Word Paralel – Bit Serial) – se lucreaza pe un singur bit
la toate cuvintele simultan, respectiv ns1, m>1;
- WPBP (Word Paralell – Bit Paralel) – se lucreaza simultan pe
toate cuvintele si pe toti bitii fiecarui cuvânt fi, respectiv n>1,
m>1
Structura WPBP este complet paralela fiind orientata pe prelucrari de
matrice mxn, în timp ce structurile WSBP si WPBS sunt partial paralele
fiind orientate pe prelucrari vectoriale (WSBP – orizontala 1xn, WPBS –
verticala mx1). În ceea ce priveste arhitectura WSBS aceasta nu are
elemente de paralelism.
13.01.2004 29 / 39
Capitolul 1 - Structuri si arhitecturi de calculatoare numerice
Magistrala de date
Magistrala de comenzi
DI+DE
UCP
UC
GF GT RI
DI+BCC NP
Fig. 1-17. Structura
RS UCP
UAL
RG
AC
R1 Rn
Magistrala sistem
13.01.2004 31 / 39
Capitolul 1 - Structuri si arhitecturi de calculatoare numerice
13.01.2004 32 / 39
Capitolul 1 - Structuri si arhitecturi de calculatoare numerice
Circuite de
RA n memorie
CCM RD
Magistrala de date
Magistrala de adrese
Magistrala de comenzi
Fig. 1-18. Schema bloc a unei unitati de memorie.
13.01.2004 33 / 39
Capitolul 1 - Structuri si arhitecturi de calculatoare numerice
Capete de
citire/scriere
1 2 3 4 5 6 7 8 9
Gap
13.01.2004 34 / 39
Capitolul 1 - Structuri si arhitecturi de calculatoare numerice
Sectoare pe o pista
Pista 0
Pista n-1
Cilindru
Fante (perforatii )
Fig. 1-20. Structura principiala a unui disc rigid si
de sincronizare
organizarea informatiei pe disc.
13.01.2004 35 / 39
Capitolul 1 - Structuri si arhitecturi de calculatoare numerice
13.01.2004 36 / 39
Capitolul 1 - Structuri si arhitecturi de calculatoare numerice
Spirala
Gauri (pits)
Disc de plastic
Magistralele sistemului
Interfata de Interfata de
intrare/iesire intrare/iesire
13.01.2004 38 / 39
Capitolul 1 - Structuri si arhitecturi de calculatoare numerice
13.01.2004 39 / 39
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
2.1. Introducere
2.2. Sisteme de numeratie, conversii si operatii
2.2.1. Sisteme de numeratie
2.2.2. Conversia unui numar dintr-o baza în alta
2.2.2.1. Metoda substitutiei
2.2.2.2. Metoda împartirii la / înmultirii cu noua
baza
2.2.3. Operatii aritmetice în binar octal si hexazecimal
2.2.3.1. Operatii aritmetice în SN binar
2.2.3.2. Operatii aritmetice în SN octal
2.2.3.3. Operatii aritmetice în SN hexazecimal
2.3. Reprezentarea numerelor în calculator
2.3.1. Reprezentarea numerelor în virgula fixa
2.3.1.1. Reprezentarea unui numar prin marime si
semn
2.3.1.2. Reprezentarea unui numar în complement
fata de 1 (cod invers)
2.3.1.3. Reprezentarea unui numar în complement
fata de 2 (cod complementar)
2.3.1.4. Reprezentarea în exces
2.3.2. Reprezentarea numerelor în virgula mobila
2.3.3. Coduri numerice si alfanumerice
2.3.3.1. Coduri numerice
2.3.3.2. Coduri alfanumerice
2.3.3.3. Coduri detectoare si corectoare de erori
13.01.2004 1 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
13.01.2004 2 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
2.1. Introducere
Dupa cum s-a aratat resursele importante ale unui calculator numeric
sunt reprezentate de cele de calcul si comanda, memorare , intrare – iesire
si comunicatii. În ceea ce priveste memoria interna aceasta este realizata
din dispozitive cu doua stari stabile iar elementele de procesare a
informatiei sunt bazate pe circuite logice care opereaza pe baza logicii
bivalente.
Aceste motive recomanda reprezentarea datelor în binar sub forma
unor succesiuni de unitati si zerouri. Exista numeroase posibilitati pentru
reprezentarea datelor, care difera prin expresibilitate, cost de implementare,
efortul de conversie de la un format la altul, etc.
Calculatoarele contin elemente de stocare a datelor de tipul
registrelor, cu un numar finit de elemente (ranguri) care afecteaza precizia
calculului. Uzual se spune ca reprezentarea este cu precizie finita aspect
care presupune prezenta erorilor de procesare.
Tipurile uzuale de date care se folosesc la nivelul hardware al unui
calculator numeric sunt:
- Bit: 0, 1;
- Sir de biti: secvente de biti cu urmatoarele lungimi uzuale:
- tetrada: 4 biti;
13.01.2004 3 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
asemenea sistem fiind caracterizat prin baza care reprezinta numarul total
de simboluri (cifre).
Exemplu de baze uzuale:
Sistemul zecimal, b=10, simboluri: 0,1,2,3,4,5,6,7,8,9;
Sistemul binar, b=2, simboluri: 0,1;
Sistemul octal, b=8, simboluri: 0,1,2,3,4,5,6,7;
Sistemul hexazecimal, simboluri: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F.
Pentru un numar întreg N≥0, reprezentarea în baza b este un n –
tuplu
N = xn-1 xn-2 …. x2 x1 x0 care verifica urmatoarele doua conditii:
a - 0 ≤ xi < b, i = n-1,…,0; xn-1 ≠0 ;
b - N = xn-1 bn-1 +…+ x1 b+ x0.
Exemple
b = 10, N = 4 52310 = 4x103 +5x102 +2x10+3
b = 8, N = 5738 = 5x82 +7x8+3
b = 2, N = 1010012 = 1x25 +0x24 +1x23 +0x22 +0x21 +1.
Numerele reale au o reprezentare asemanatoare, însa contin punctul
fractionar (sau virgula) care separa partea întreaga de cea fractionara.
Pentru un numar real r≥0, reprezentarea în baza b este secventa de
simboluri (m – tuplul)
r = xm-1 … x1 x0 . x-1 x-2 … care verifica urmatoarele relatii:
a - 0 ≤ xi < b, i = m-1,…,0,-1,-2,…; xm-1 ≠0;
b - nu exista un rang k astfel încât începând de la acel
rang xk = xk-1 =…=b-1
c - r = xm-1 bm -1 +…+ x1 b+ x0 + x-1 b-1 + x-2 b-2 +…
Exemple
b=10, N=154.6430 =1x102 +5x10+4+3x10-1 +2x10-2
b=8, N=623.458 =6x82 +2x8+3+4x8-1 +5x8-2
b=2, N=101.0112 =1x22 +0x2+1+0x22 +1x21 +1.
Pornind de la faptul ca la baza realizarii unui sistem numeric de
calcul stau dispozitivele cu doua stari stabile, rezulta ca SN binar (care
13.01.2004 5 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
necesita numai doua cifre, 0 si 1) este cel mai potrivit pentru prelucrarea,
codificarea si transmiterea informatiei în aceste echipamente. SN ale caror
baze reprezinta puteri ale lui 2 prezinta de asemenea proprietatile
sistemului binar, motiv pentru care sunt frecvent utilizate în tehnica de
prelucrare automata a datelor (în special SN octal si SN hexazecimal). în
ceea ce priveste SN zecimal acesta este cu precadere utilizat în anumite
faze ale operatiilor de intrare- iesire.
dar
(1)16 = (1)2 , (7 )16 = (111)2 , (10 )16 = (16 )10 = (10 000 )2
În aceste conditii numarul N se va scrie
N = (17 )16 = (1)2 × (10000 )2 + (111)2 = (10000 )2 + (111 )2 =
= (10111 )2 = (0001 0111)2
dar
(B )16 = (11)10 , (F )8 = (15 )10 , (4 )16 = (4 )10 ,
(1)16 = (1)10 , (5 )16 = (5 )10 , (10 )16 = (16 )10
În aceste conditii numarul N se va scrie
13.01.2004 8 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
Tabelul 2.1
Octal Binar Hexazecimal Binar Hexazecimal Binar
0 000 0 0000 8 1000
1 001 1 0001 9 1001
2 010 2 0010 A 1010
3 011 3 0011 B 1011
4 100 4 0100 C 1100
5 101 5 0101 D 1101
6 110 6 0110 E 1110
7 111 7 0111 F 1111
13.01.2004 9 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
13.01.2004 10 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
13.01.2004 11 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
13.01.2004 12 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
Daca baza de plecare este 10, iar conversia se face în baza β, atunci
numarul de iteratii, respectiv numarul de cifre în noua reprezentare poate fi
determinat înainte de începerea conversiei potrivit relatiei
log N + 1 daca N = ß k , k ∈ N
β
n= (2.5)
[log β N ] + 1 daca N ≠ β k , k ∈ N
13.01.2004 13 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
e rel conv [% ] =
1
× 100 (2.8)
β nF
unde
1
= k daca N F = M × k , M , k ∈ N
β
n F ≥ ( − log β erel conv ) daca e rel conv = β −k , k ∈ N (2.11)
−k
≥ ([− log β e rel conv ] + 1) daca e rel conv ≠ β , k ∈ N
Din prezentarea efectuata rezulta ca numarul de pozitii binare
pentru partea întreaga se poate determina întotdeauna cu exactitate apriori,
în timp ce pentru partea fractionara acest lucru este posibil numai daca este
respectata conditia in relatia (2.6).
Exemple
a. Sa se converteasca în binar numarul N10 = 98.4352 cu o
eroare erelconv < 0.82 % în caz ca nu este respectata conditia (2.6).
1. Se determina numarul de pozitii binare n I necesare pentru
conversia partii întregi:
Deoarece 98 nu este o putere întreaga a lui 2
n 1 = [log2 98]+1=[6.6147]+1=7 biti
2. Se converteste partea întreaga: NI =98
98 = 2 x 49 + 0 ? a0 = 0
49 = 2 x 24 + 1 ? a1 = 1
24 = 2 x 12 + 0 ? a2 = 0
12 = 2 x 6 + 0 ? a3 = 0
6=2x 3+0 ? a4 = 0
3 = 2 x 1 + 1? a5 = 1
1 = 2 x 0 + 1? a6 = 1
Rezulta pentru partea întreaga (NI)2 =1100010.
3. Deoarece conditia (2.6) nu este îndeplinita conversia se va face
pe 6 ranguri pentru partea fractionara. si eroarea nu este o putere a bazei 2
rezulta
n F = [-log2 0.0082] + 1 = [6.9301] + 1 = 8 biti
+0.03125+0.0015625+0.0078125 = 98.43359375
0.4352 − 0 .4336
5. erel conv [% ] = × 100 = 0 .367 %
0.4352
Observatie
Rezultatul pentru partea zecimala este corect, întrucât s-a procedat
la o rotunjire prin adaos a numarului de ranguri binare pentru aceasta parte.
13.01.2004 16 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
13.01.2004 17 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
= 36 + 12 + 5 = (53)10
2. P se converteste Q prin metoda substitutiei
13.01.2004 18 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
dar
(1)8 = (1)10 , (7)8 = (7)10 , (10)8 = (8)10
În aceste conditii numarul Q se va scrie
795 = 16 x 9 + B ? a0 = B
49 = 16 x 3 + 1 ? a1 = 1
3 = 16 x 0 + 3 ? a2 = 3
+ 0 1 x 0 1
0 0 1 0 0 0
1 1 10 1 0 1
Înmultire Împartire
10 11 . 11 x 1 1 1 0 1 1 1 0 . 1 1 1 11 0 1
1 11 . 01 1 10 1 10 0 1 0 . 0 1 1
1 011 11 0 00 11 11
13.01.2004 20 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
00 000 0 11 01
1 01 111 00 10 011
10 11 11 1 101
1 01 11 1 00 110 1
10 01 11 000 11 110 1
000 0
1 00 11 10 . 00 11
13.01.2004 21 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
Adunare Scadere
2 57 . 4 3 2 + 4 1 23 . 5 16 -
1 44 . 6 1 3 5 67 . 3 07
4 24 . 2 4 5 3 3 34 . 2 07
Înmultire Împartire
17 53 . 21 6 x 76 32 1 . 5 42 : 2 3 . 11
4.3
570 165 2 7 6 3 2 1 5 4 . 2 23 1 1
76 55 070 71 33 32 0 5 . 3 2
1 0 4 45 2552 =4 77 1
4 62 2
1 0 4 4 5 . 25 5 2 = 14 754
13 755
== 7 7 7 2
713 3
=63 70
46 22
15 46
13.01.2004 22 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
1 1 2 3 4 5 6 7 8 9 A B C D E F 10
2 2 3 4 5 6 7 8 9 A B C D E F 10 11
3 3 4 5 6 7 8 9 A B C D E F 10 11 12
4 4 5 6 7 8 9 A B C D E F 10 11 12 13
5 5 6 7 8 9 A B C D E F 10 11 12 13 14
6 6 7 8 9 A B C D E F 10 11 12 13 14 15
7 7 8 9 A B C D E F 10 11 12 13 14 15 16
8 8 9 A B C D E F 10 11 12 13 14 15 16 17
9 9 A B C D E F 10 11 12 13 14 15 16 17 18
A A B C D E F 10 11 12 13 14 15 16 17 18 19
B B C D E F 10 11 12 13 14 15 16 17 18 19 1A
C C D E F 10 11 12 13 14 15 16 17 18 19 1A 1B
D D E F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C
E E F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D
F F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E
Tabelul 2.5
x 0 1 2 3 4 5 6 7 8 9 A B C D E F
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 1 2 3 4 5 6 7 8 9 A B C D E F
2 0 2 4 6 8 A C E 10 12 14 16 18 1A 1C 1E
3 0 3 6 9 C F 12 15 18 1B 1E 21 24 27 2A 2D
4 0 4 8 C 10 14 18 1C 20 24 28 2C 30 34 38 3C
5 0 5 A F 14 19 1E 23 28 2D 32 37 3C 41 46 4B
6 0 6 C 12 18 1E 24 2A 30 36 3C 42 48 4E 54 5A
7 0 7 E 15 1C 23 2A 31 38 3F 46 4D 54 5B 62 69
8 0 8 10 18 20 28 30 38 40 48 50 58 60 68 70 78
9 0 9 12 1B 24 2D 36 3F 48 51 5A 63 6C 75 7E 87
A 0 A 14 1E 28 32 3C 46 50 5A 64 6E 78 82 8C 96
B 0 B 16 21 2C 37 42 4D 58 63 6E 79 84 8F 9A A5
C 0 C 18 24 30 3C 48 54 60 6C 78 84 90 9C A8 B4
D 0 D 1A 27 34 41 4E 5B 68 75 82 8F 9C A9 B6 C3
E 0 E 1C 2A 38 46 54 62 70 7E 8C 9A A8 B6 C4 D2
F 0 F 1E 2D 3C 4B 5A 69 78 87 96 A5 B4 C3 D2 E1
Adunare Scadere
7FA 4 + C4 1 2 -
52 1D A FB 5
D1 C 1 1 4 5D
Înmultire Împartire
1 4A. 2 F x A 5 7 BF 3A
B.1 74 2 DA 6 . 9A
1 4A 2 F 3 17
E3 00 5 2F2
E 4 4A 7 F = 25B
24 4
E4 4 . A7 F =1 7F
1 5C
23 0
20A
260
244
1C
13.01.2004 24 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
13.01.2004 25 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
1. semn – marime;
2. complement fata de 2;
3. complement fata de 1.
Înainte de a trata fiecare mod de reprezentare se va defini notiunea
de complement al unui numar N scris într-o baza b.
a) Se numeste complement fata de baza b a numarului (N)b
numarul ( N ) b definit prin relatia
( N ) b = b n − (N )b . (2.12)
C 2(1011 .11) = N = 2 4 −1011 .11 =10000 .00 −1011 .11 = 0100 .01
C1(1011 .11) = N = 2 4 −1011.11 − 2 −2 = 10000 .00 −1011 .11 − 0.01 =
= 10000 .00 −1100 .00 = 0100 .00
Daca n este numarul de cifre binare ale unui numar, atunci cel mai
mare numar pozitiv care poate fi reprezentat este
13.01.2004 26 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
N = 2n − 1, (2.14)
n
numarul de valori distincte fiind 2 .
Pentru exemplificare în Tabelul 2.6 se prezinta valori tipice pentru
n si 2 n si N.
Tabelul 2.6
n=
2n = numar de valori N = valoarea maxima
numar
distincte reprezentabila
de biti
8 256 255
16 65,536 65,535
32 4,294,967,296 4,294,967,295
64 1,844,674,407,370,955,616 1,844,674,407,370,955,615
13.01.2004 27 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
s M – marime
1 n+m-1 biti
Fig. 2.1. Reprezentarea semn – marime pe n+m biti.
Exemple
a) + 9 = 0 1001
valoarea numarului
bitul de semn
b) - 6 = 1 0110
valoarea numarului
bitul de semn
c) -0.6875 = 1 1011
valoarea numarului
bitul de semn
13.01.2004 28 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
(cod complementar)
Pentru numere pozitive N > 0 reprezentarea în complement fata de
2 este identica cu reprezentarile semn – marime si în cod complementar
fata de 1.
Daca N < 0, atunci s = 1
C 2( N ) = 2 n −1 − N , (2.19)
unde n-1 este numarul de biti utilizati pentru reprezentarea marimii
(fara semn).
Calculul C(1) se poate face prin trei metode si anume:
a. utilizând definitia, respectiv
s = 1 C 2 ( N ) = 2n −1 − N ;
b. prin inversarea bitilor reprezentarii cu semn a valorii absolute
|N| a numarului N la care se adauga 1, în pozitia cea mai putin
semnificativa;
c. prin analiza de la dreapta la stânga a reprezentarii cu semn a
valorii absolute |N| a numarului N. Primii biti de 0 si primul bit
de 1 se lasa neinversati, apoi se inverseaza toti bitii, inclusiv
bitul de semn (daca primul bit întâlnit este 1 se lasa neschimbat
numai acesta).
Exemple
1. Fie n-1 = 7 si N = -123; sa se calculeze prin cele trei metode
C2(N)
a. |N| = 123; M = 27 – 123 = 128 – 123 = 5
C2(N) = 1 0000101
b. (|N|) d = 0 1111011
C1(N) = 1 0000100 + (s-a inversat fiecare bit).
1
C2(N) = 1 0000101
c. 1. (|N|) d = 0 1111011
2. se analizeaza bitii de la dreapta spre stânga si se inverseaza
C2(N) = 1 000010 1 ← bit neschimbat
13.01.2004 30 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
biti inversati
2. Fie n-1 = 7 si N = -96; sa se calculeze prin cele trei metode
C2(N)
a. |N| = 96; M = 27 – 96 = 128 – 96 = 32
C2(N) = 1 0100000
b. (|N|) d = 0 1100000
C1(N) = 1 0011111 + (s-a inversat fiecare bit).
1
C2(N) = 1 0100000
c. 1. (|N|) = 0 1 100000
2. se analizeaza bitii de la dreapta spre stânga si se inverseaza
C2(N) = 1 0 100000 ← biti neschimbati
biti inversati
Reprezentarea în complement fata de 2 este cea mai utilizata pentru
numerele algebrice datorita în primul rând faptului ca elimina ambiguitatile
legate de reprezentarea numarului zero.
În C2 numarul zero are o reprezentare unica si anume
[0] c = 0 000… 000 .
Aceasta unica reprezentare face ca un numar N întreg reprezentat în
cod complementar pe n ranguri sa poata lua valori în gama
− 2 n −1 ≤ N ≤ 2 n−1 − 1 , (2.20)
ceea ce va implica, de exemplu, pentru
- n=8 domeniul de reprezentare sa fie D = [− 128 , + 127 ] ∩ Z ;
- n=16 domeniul de reprezentare sa fie D = [− 32768 ,+32767 ] ∩ Z .
13.01.2004 32 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
Exemple
6.342 = 0.6342 x 101 = 6.342 x 100 ;
0.0057 = 0.57 x 10-2 = 5.7 x 10-3 ;
5760 = 0.576 x 104 = 5.76 x 103 .
13.01.2004 34 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
0 11111111 00000000000000000000000 = +8
1 11111111 00000000000000000000000 = -8
2
când e?0, se presupune un bit egal cu 1 la stânga lui f; virgula se considera
plasata între acest bit si primul bit explicit al mantisei.
13.01.2004 36 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
= 2**(-127)
0 00000000 00000000000000000000001 = +1 * 2**(-126) *
0.00000000000000000000001 = 2**(-149) (Cea mai mica valoare
pozitiva)
Conform relatiei (2.21) marimea numerelor reprezentate este în
gama
(
. − 2 − 126 × (1.0) ≤ r ≤ 2127 × 2 − 2 −23 )
În formatul lung (dublu de baza) semnificatiile sunt urmatoarele:
- bitul 00: s = semnul mantisei (s = 1 – mantisa negativa );
- bitii 01 - 11: e = exponentul deplasat (deplasarea este 210 – 1 =
1023);
- bitii 12 - 63: f = mantisa normalizata/ fractia 3 .
Valoarea unui numar r reprezentat într-un asemenea format este:
- daca e = 2047 si f ? 0 atunci r = NAN (nu este un unumar –
Not A Number);
- daca e= 2047 si f = 0 atunci r = (− 1)s × ∞ ;
(
− 2 − 126 × (1.0) ≤ r ≤ 2127 × 2 −− 23 )
r = (− 1)s × 2e − (2 −1) × (1 + f ) , cu conditon e ≠ 0
10
(2.22)
Conform relatiei (2.21) marimea numerelor reprezentate este în
gama
(
− 2 − 1022 × (1.0) ≤ r ≤ 21023 × 2 − −52 . )
-
3
idem 2.
13.01.2004 37 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
(
. − 2 − 126 × (1.0) ≤ r ≤ 2127 × 2 −− 23 )
Exemplu
Sa se reprezinte în formatul scurt numarul r= -348.562510 ,.
a. se converteste r in baza 2
348 = 174 x 2 + 0
174 = 87 x 2 + 0
87 = 43 x 2 + 1
43 = 21 x 2 + 1
21 = 10 x 2 + 1 rI = 101011100
10 = 5 x 2 + 0
5= 2x2+1
2= 2x1+0
1= 0x2+1
0.5625 x 2 = 1.125
0.1250 x 2 = 0.250
0.2500 x 2 = 0.500 rF = 0.1001
0.5000 x 2 = 1.000
r =1010 11100.1001
b. se trece rezultatul in forma normalizata
r =1.0101 1100 1001 0000 0000 000 x 28 (pentru a se obtine
mantisa pe 23 de biti s-a completat doua grupe de câte 4 si o grupa cu 3 de
zero;
c. se reprezinta în VM
s = 1 (negativ)
e = 127 + 8 = 13510 = 8716 = 1000 01112
f = 0101 1100 1001 0000 0000 000
Rezulta reprezentarea in virgula mobila
r = 1 1000 0111 0101 1100 1001 0000 0000 000
d. Verificare
13.01.2004 38 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
13.01.2004 39 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
Observatie
În cazul exponentului nu toate combinatiile de biti sunt valide. De
exemplu în standardul IEEE 754 , desi în simpla precizie sun
rezervati 8 biti, cel mai mic exponent este –126 si nu –128,
exponentii interzisi fiind pentru reprezentarile speciale zero si
infinit.
Cel mai mic numar reprezentabil Nmin (cu cel mai mare exponent b E
si cea mai mare mai mica fractie normalizata b -1 ) va fi
N min = b e −1 . (2.24)
Cel mai mare numar reprezentabil Nmax (cu cel mai mare exponent
b E si cea mai mica mai mica fractie normalizata diferita de zero b -1 ) va fi
(
N max = b E × 1 − b − f . ) (2.25)
Cea mai mica distanta între doua numere consecutive Dmin care
apare atunci exponentul are cea mai mica valoare b e si se modifica cel mai
putin semnificativ bit al fractiei b -f va fi
Dmin = b e− f . (2.26)
Cea mai mare distanta între doua numere consecutive Dmax care
apare atunci exponentul are cea mai mare valoare b E si se modifica cel mai
putin semnificativ bit al fractiei b -f va fi
Dmin = b E − f . (2.27)
Exemplu
Sa se determine elementele de mai sus urmatoarea reprezentare în
VM (figura 2.5):
- bit de semn;
- exponent pe doi biti în exces 2;
- fractie pe 3 biti normalizata fara 1 ascuns;
00 01 02 03 05
s e f
1 bit 2 biti 3 biti
13.01.2004 Fig. 2.5. Formatul41
VM/ 104
pentru exemplu.
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
1
( )
N min = b e −1 = 2- 2-1 = 2 −3 = = 0.125 × 10 0 10 = (0.001 × 2 0 ) 2
8
• cel mai mare numar reprezentabil
( ) ( )
N max = b E × 1 − b − f = 21 × 1 − 2 −3 = 2 × (2 − 0.125 ) =
=
7
4
(
= (0.175 ×101 )10 = 0 .111 × 21 2 )
• numarul reprezentarilor
Nrrepr = 2 × ((E − e ) + 1) × (b − 1) × b f −1 + 1 =
2 × ((1 + 2) + 1)× (2 − 1)× 23−1 + 1 = 2 × 4 × 2 2 + 1 = 33
• distanta minima între doua numere reprezentabile
1
Dmin = b e− f = 2 −2−3 = 2 −5 = = (0 .03125 )10 =
32
(
= (0 .00001 )2VF = 0.001 × 2 −2 2VM )
• distanta maxima între doua numere reprezentabile
1
Dmin = b E − f = 21−3 = 2 −2 = = (0.25)10 =
4
(
= (0 .01)2VF = 0.010 × 21 2VM )
2.3.3. Coduri numerice si alfanumerice
4
Cele 4 combinatii în binar vor fi 00, 01, 10, 11 sau având în vedere excesul se
obtin exponentii –2, -1, 0, 1.
13.01.2004 42 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
13.01.2004 43 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
5
Doua tetrade ale caror echivalente zecimale însumate dau 9 sunt complementare.
6
Pentru a face distinctie între valoarea 0 si absenta unui semnal se exclude
combinatia 0000.
13.01.2004 45 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
HEX DEC CHR CTRL HEX DEC CHR HEX DEC CHR HEX DEC CHR
00 0 NUL ^@ 20 32 SP 40 64 @ 60 96 `
01 1 SOH ^A 21 33 ! 41 65 A 61 97 a
02 2 STX ^B 22 34 " 42 66 B 62 98 b
03 3 ETX ^C 23 35 # 43 67 C 63 99 c
04 4 EOT ^D 24 36 $ 44 68 D 64 100 d
05 5 ENQ ^E 25 37 % 45 69 E 65 101 e
06 6 ACK ^F 26 38 & 46 70 F 66 102 f
07 7 BEL ^G 27 39 ' 47 71 G 67 103 g
08 8 BS ^H 28 40 ( 48 72 H 68 104 h
09 9 HT ^I 29 41 ) 49 73 I 69 105 i
0A 10 LF ^J 2A 42 * 4A 74 J 6A 106 j
0B 11 VT ^K 2B 43 + 4B 75 K 6B 107 k
0C 12 FF ^L 2C 44 , 4C 76 L 6C 108 l
0D 13 CR ^M 2D 45 ? 4D 77 M 6D 109 m
0E 14 SO ^N 2E 46 . 4E 78 N 6E 100 n
0F 15 SI ^O 2F 47 / 4F 79 O 6F 111 o
10 16 DLE ^P 30 48 0 50 80 P 70 112 p
11 17 DC1 ^Q 31 49 1 51 81 Q 71 113 q
12 18 DC2 ^R 32 50 2 52 82 R 72 114 r
13 19 DC3 ^S 33 51 3 53 83 S 73 115 s
14 20 DC4 ^T 34 52 4 54 84 T 74 116 t
15 21 NAK ^U 35 53 5 55 85 U 75 117 u
16 22 SYN ^V 36 54 6 56 86 V 76 118 v
17 23 ETB ^W 37 55 7 57 87 W 77 119 w
18 24 CAN ^X 38 56 8 58 88 X 78 120 x
19 25 EM ^Y 39 57 9 59 89 Y 79 121 y
1A 26 SUB ^Z 3A 58 : 5A 90 Z 7A 122 z
1B 27 ESC 3B 59 ; 5B 91 [ 7B 123 {
1C 28 FS 3C 60 < 5C 92 \ 7C 124 |
1D 29 GS 3D 61 = 5D 93 ] 7D 125 }
1E 30 RS 3E 62 > 5E 94 ^ 7E 126 ~
1F 31 US 3F 63 ? 5F 95 _ 7F 127 DEL
13.01.2004 46 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
Tabelul 2.10
CHR S emnificatie CHR S emnificatie CHR S emnificatie
NUL NULl FF Form Feed CAN CANcel
SOH S tart Of Heading CR Carriage Return EM End of Medium
STX S tart of TeXt SO S hift Out SUB SUBstitution
ETX End of TeXt SI S hift In ESC ESCape
EOT End Of DLE Data Link Escape FS File S eparator
Transmission
ENQ ENQuiry DC1 Device Control 1 GS Group separator
ACK ACKnowledge DC2 Device Control 2 RS Record
separator
BEL BELl DC3 Device Control 3 US Unit separator
BS BackS pace DC4 Device Control 4 SP S Pace
HT Horizontal NAK Negative DEL DELete
Tabulation AcKnowledge
LF Line Feed SYN SYNchronous idle
VT Vertical Tabulation ETB End of Transmission
Block
7
Pentru a transforma reprezentarea alfanumerica a unei cifre în valoarea sa
numerica se scade 30h iar pentru a transforma codul unei majuscule în codul
corespunzator al minusculei se aduna 20h.
13.01.2004 47 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
Tabelul 2.11
Dec Hex Code Dec Hex Code Dec Hex Code Dec Hex Code
0 00 NUL 32 20 64 40 space 96 60 -
1 01 SOH 33 21 65 41 97 61 /
2 02 STX 34 22 66 42 98 62
3 03 ETX 35 23 67 43 99 63
4 04 36 24 68 44 100 64
5 05 HT 37 25 LF 69 45 101 65
6 06 38 26 ETB 70 46 102 66
7 07 DEL 39 27 ESC 71 47 103 67
8 08 40 28 72 48 104 68
9 09 41 29 73 49 105 69
10 0A 42 2A 74 4A [ 106 6A |
11 0B VT 43 2B 75 4B . 107 6B ,
12 0C FF 44 2C 76 4C < 108 6C %
13 0D CR 45 2D ENQ 77 4D ( 109 6D _
14 0E SO 46 2E ACK 78 4E + 110 6E >
15 0F SI 47 2F BEL 79 4F |! 111 6F ?
16 10 DLE 48 30 80 50 & 112 70
17 11 49 31 81 51 113 71
18 12 50 32 SYN 82 52 114 72
19 13 51 33 83 53 115 73
20 14 52 34 84 54 116 74
21 15 53 35 85 55 117 75
22 16 BS 54 36 86 56 118 76
23 17 55 37 EOT 87 57 119 77
24 18 CAN 56 38 88 58 120 78
25 19 EM 57 39 89 59 121 79 ‘
26 1A 58 3A 90 5A !] 122 7A :
27 1B 59 3B 91 5B $ 123 7B #
28 1C IFS 60 3C 92 5C * 124 7C @
29 1D IGS 61 3D NAK 93 5D ) 125 7D ‘
30 1E IRS 62 3E 94 5E ; 126 7E =
31 1F IUS 63 3F SUB 95 5F ^ 127 7F "
13.01.2004 48 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
Tabelul 2.12
Dec Hex Code Dec Hex Code Dec Hex Code Dec Hex Code
128 80 160 A0 192 C0 { 224 E0 \
129 81 a 161 A1 ~ 193 C1 A 225 E1
130 82 b 162 A2 s 194 C2 B 226 E2 S
131 83 c 163 A3 t 195 C3 C 227 E3 T
132 84 d 164 A4 u 196 C4 D 228 E4 U
133 85 e 165 A5 v 197 C5 E 229 E5 V
134 86 f 166 A6 w 198 C6 F 230 E6 W
135 87 g 167 A7 x 199 C7 G 231 E7 X
136 88 h 168 A8 y 200 C8 H 232 E8 Y
137 89 i 169 A9 z 201 C9 I 233 E9 Z
138 8A 170 AA 202 CA 234 EA
139 8B 171 AB 203 CB 235 EB
140 8C 172 AC 204 CC 236 EC
141 8D 173 AD 205 CD 237 ED
142 8E 174 AE 206 CE 238 EE
143 8F 175 AF 207 CF 239 EF
144 90 176 B0 208 D0 } 240 F0 0
145 91 j 177 B1 209 D1 J 241 F1 1
146 92 k 178 B2 210 D2 K 242 F2 2
147 93 l 179 B3 211 D3 L 243 F3 3
148 94 m 180 B4 212 D4 M 244 F4 4
149 95 n 181 B5 213 D5 N 245 F5 5
150 96 o 182 B6 214 D6 O 246 F6 6
151 97 p 183 B7 215 D7 P 247 F7 7
152 98 q 184 B8 216 D8 Q 248 F8 8
153 99 r 185 B9 217 D9 R 249 F9 9
154 9A 186 BA 218 DA 250 FA
155 9B 187 BB 219 DB 251 FB
156 9C 188 BC 220 DC 252 FC
157 9D 189 BD 221 DD 253 FD
158 9E 190 BE 222 DE 254 FE
159 9F 191 BF 223 DF 255 FF
13.01.2004 49 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
PI PP 26 25 24 23 22 21 20 Caracter
0 1 1 1 0 0 1 0 0 d
1 0 1 1 0 0 1 0 1 e
8
Aceasta distanta este cunoscuta ca distanta Hamming.
9
0 ⊕ 0 = 0 0 ⊕1 = 1 1 ⊕ 0 = 1 1 ⊕1 = 0
13.01.2004 50 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
13.01.2004 51 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
13.01.2004 52 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
13.01.2004 53 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
Tabelul 2.13
Pozitie bit
C8 C4 C2 C1
verificat
D0 0 0 1 1
0 0 1 0 2
0 0 1 1 3
0 1 0 0 4
0 1 0 1 5
0 1 1 0 6
0 1 1 1 7
1 0 0 0 8
1 0 0 1 9
1 0 1 0 10
1 0 1 1 11
13.01.2004 54 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
11 10 9 8 7 6 5 4 3 2 1
B7 B6 B5 C8 B4 B3 B2 C4 B1 C2 C1
10
Se are în vedere faptul ca un bit n este verificat de catre bitii ale caror pozitii
însumate dau n (de exemplu bitul 7 este verificat de catre bitii din pozitiile 1, 2, 4
deoarece 1+2+4=7.
13.01.2004 55 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
11 10 9 8 7 6 5 4 3 2 1
B7 B6 B5 C8 B4 B3 B2 C4 B1 C2 C1
1 1 0 ? 0 0 0 ? 1 ? ?
S1 = C1 ⊕ B1 ⊕ B2 ⊕ B4 ⊕ B5 ⊕ B7 = 0 → C1 ⊕ 1 ⊕ 0 ⊕ 0 ⊕ 0 ⊕ 1 = 0 → C1 = 0
S 2 = C 2 ⊕ B1 ⊕ B3 ⊕ B4 ⊕ B6 ⊕ B7 = 0 → C2 ⊕ 1 ⊕ 0 ⊕ 0 ⊕ 1 ⊕ 1 = 0 → C2 = 1
S 4 = C4 ⊕ B2 ⊕ B3 ⊕ B4 = 0 → C4 ⊕ 0 ⊕ 0 ⊕ 0 = 0 → C4 = 0
S8 = C8 ⊕ B5 ⊕ B6 ⊕ B7 = 0 → C8 ⊕ 0 ⊕ 1 ⊕ 1 = 0 → C8 = 0
astfel încât se transmite urmatoarea formatie de 11 biti
11 10 9 8 7 6 5 4 3 2 1
B7 B6 B5 C8 B4 B3 B2 C4 B1 C2 C1
1 1 0 0 0 0 0 0 1 1 0
11 10 9 8 7 6 5 4 3 2 1
B7 B6 B5 C8 B4 B3 B2 C4 B1 C2 C1
1 0 0 1 0 1 1 1 0 0 1
Se evalueaza sumele Si
S1 = C1 ⊕ B1 ⊕ B2 ⊕ B4 ⊕ B5 ⊕ B7 = 1 ⊕ 0 ⊕ 1 ⊕ 0 ⊕ 0 ⊕ 1 = 1 → impar a
S 2 = C2 ⊕ B1 ⊕ B3 ⊕ B4 ⊕ B6 ⊕ B7 = 0 ⊕ 0 ⊕ 1 ⊕ 0 ⊕ 1 ⊕ 0 = 0 → para
S 4 = C 4 ⊕ B2 ⊕ B3 ⊕ B4 = 1 ⊕ 1 ⊕ 1 ⊕ 0 = 1 → C4 → impar a
S8 = C8 ⊕ B5 ⊕ B6 ⊕ B7 = 1 ⊕ 0 ⊕ 0 ⊕ 1 = 0 → para
13.01.2004 56 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
11 10 9 8 7 6 5 4 3 2 1
B7 B6 B5 C8 B4 B3 B2 C4 B1 C2 C1
1 0 0 1 0 1 0 1 0 0 1
Respectiv
7 6 5 4 3 2 1
B7 B6 B5 B4 B3 B2 B1
1 0 0 0 1 0 0
Observatii
1. În cazul aparitiei a doua erori acestea pot fi detectate,
însa numai una poate fi corectata. Pentru a corecta 2
erori distanta Hamming minima trebuie sa fie 5. În
general pentru a detecta p erori distanta Hamming
trebuie sa fie p+1 , iar pentru corectarea a p erori
aceasta distanta trebuie sa fie 2p+1.
2. Schema de detectare si corectare a unei erori poate fi
vizualizata pe un hipercub în vârfurile caruia sunt
plasate codurile valide si invalide. Distanta Hamming
separa codurile valide, în timp ce un cod invalid este
plasat mai aproape de un cod valid, aspect ce faciliteaza
detectarea si corectarea unei erori singulare.
13.01.2004 57 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
13.01.2004 58 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
Tabelul 2.17
Semnul (+ A) + (+ B ) (+ A) + (− B) (− A ) + ( + B) (− A ) + ( −B )
rezultatului
+(0) +(0) +(0) -(1)
Cs
Semnificatia Adevarata Adevarata Adevarata Adevarata
sumei marime C marime C marime C marime C
Nu Nu
Eroare de Eroare de
Corectie (rezultat (rezultat
depasire depasire
corect) corect)
11
Acest lucru este posibil deoarece A − B = A + (0 − B ) = A + B
12
CCMS –Cifra Cea Mai Semnificativa
13
rC2 – recomplementare, operatiile se fac invers celor de la obtinerea C2 (se
scade 1, dupa care complementeaza).
13.01.2004 59 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
START
Citeste operanzii A, B
si semnele As si Bs
< >
As : Bs
=
A*= A A*= C2(A)
A*= A
C* = A*+ B*
Nu Da
Transport ?
Da Da
Nu
As = Bs As = Bs
Nu
Cs=As Cs = 1 (-) Cs=As
Cs = 0 (+)
C= C* C = rC2(C*)
C= C*
STOP
13.01.2004 60 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
C1 * = A + B 0 1 0 1 0 +
0 0 1 1 1
0 0 0 0 1
C2 * = A - B = 0 1 0 1 0 +
= A + C2(B) 1 1 0 0 1
0 0 1 1
1
C2 = C2 * 0 0 0 1 1
C3 * = -A + B = 1 0 1 1 0 +
= C2(A) + B 0 0 1 1 1
1 1 1 0 1
C3 = rC2(C2 * ) 1 0 0 1 1
13.01.2004 61 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
C4 * = -A - B 1 1 0 1 0 +
1 0 1 1 1
0 0 0 1
1
Tabelul 2.18
Situatii (+ A) + (+ B) (+ A) + (− B) (− A ) + ( + B) (− A ) + ( −B )
posibile
Operatia de A+ B A+B A+B A +B
executat
Adunarea numerelor se executa asupra cifrelor numerelor A si B în
conformitate cu regulile adunarii binare. Adunarea se efectueaza rang cu
rang, începând cu rangurile mai putin semnificative, inclusiv rangurile de
semn. Eventualul transport care apare la stânga rangului de semn se
neglijeaza.
13.01.2004 62 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
Tabelul 2.19
Semnul (+ A) + (+ B ) (+ A) + (− B) (− A ) + ( + B) (− A ) + ( −B )
rezultatului
+(0) -(1) -(1) -(1)
Cs
Semnificatia Adevarata Compleme Compleme Compleme
sumei marime C ntul C2 ntul C2 ntul C2
Nu Nu Nu
(rezultat (rezultat (rezultat Eroare de
Corectie
depasire
corect) corect corect
Tabelul 2.20
Semnul (+ A) + (+ B ) (+ A) + (− B) (− A ) + ( + B) (− A ) + ( −B )
rezultatului
+(0) +(0) +(0) -(1)
Cs
Semnificatia Adevarata Adevarata Adevarata Complement
sumei marime C marime C marime C ul C2
Nu Nu
Eroare de Nu (rezultat
Corectie (rezultat (rezultat
depasire corect
corect) corect)
Exemplu
Fie A=(8/16) 10 = (0.5) 10 si B=(7/16) 10 = (0.4375) 10 reprezentate în
binar pe cinci biti (patru pentru valoare, unul pentru semn) prin
A=(01000)2 si B=(00110)2
Sa se calculeze C1 =A+B, C2 =A-B, C3 =-A+B, C4 =-A-B prin
reprezentare în C2 pe 5 biti
C1 = A + B 0 1 0 0 0 +
0 0 1 1 0
0 1 1 1 0
13.01.2004 63 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
C2 = A - B = 0 1 0 0 0 +
= A + C2(B) 1 1 0 1 0
0 0 1 0
1 Transport de la
CCMS
C2 = C2 * 0 0 0 1 0
1 Transport de la bitul
de semn – se ignora
C3 = -A + B = 1 1 0 0 0 +
= C2(A) + B 0 0 1 1 0
1 1 1 1 0
C3 = rC2(C3 ) 1 0 0 1 0
C4 = -A - B 1 1 0 0 0 +
1 1 0 1 0
0 0 1 0
1 Transp. De la
CCMS
1 0 0 1 0
1 Transport de la bitul
de semn – se ignora
13.01.2004 64 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
în conditiile
− 2 n−1 ≤ x ≤ 2n −1 − 1
(2.36)
− 2 n−1 ≤ y ≤ 2n −1 − 1
Exemplu
Fie n = 4 si x = + 3 si y = +2
[+ 3]c + [+ 2]c = 0011 + 0010 = 0101 = [0101]c = [+ 5]c
Exemplu
Fie n = 4 si x = + 3 si y = +2
[+ 3]c + [+ 2]c = 0011 + 0010 = 0101 = [0101]c = [+ 5]c
Exemplu
Fie n = 4 si x = - 6 si y = +7
[− 6]c + [+ 7]c = 24 − 0110 + 0111 =10000 − 0110 + 0111 =
= 1010 + 0111 = 0111 = 10001 = [1]c
transport, se
neglijeaza
<0
Exemplu
Fie n = 4 si x = - 7 si y = +6
[− 7]c + [+ 6]c = 24 − 0111 + 0110 =10000 − 0111 + 0110 =
= 1001 + 0110 = 1111 = [1111 ]c = 1001 = − 1
x < 0, y < 0, dar x + y ≤ 2 n -1 − 1
d) (2.41)
atunci[x ]c + [y ]c = 2n − x + 2n − y = [x + y]c
Transport se
neglijeaza
<0
Exemplu
Fie n = 4 si x = - 3 si y = -2
[− 3]c + [− 2]c = 24 − 0011 + 2 4 − 0010 = 10000 − 0011 +
+ 10000 − 0010 = 1101 + 1110 = 1 1011 = [1011 ]c = 1101 = − 5
13.01.2004 66 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
Tabelul 2.23
Semnul (+ A) + (+ B ) (+ A) + (− B) (− A ) + ( + B) (− A ) + ( −B )
rezultatului
+(0) +(0) +(0) -(1)
Cs
Adevarata Adevarata
Semnificatia Adevarata
marime marime C1-1
sumei C marime C
C-1 C-1
Eroare de
Corectie Se aduna 1 Se aduna 1 Se aduna 1
depasire
13.01.2004 67 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
Exemplu
Fie A=(4/16) 10 = (0.25) 10 si B=(11/16) 10 = (0.6875) 10 reprezentate în
binar pe cinci biti (patru pentru valoare, unul pentru semn) prin
A=(00100)2 si B=(01011)2
Sa se calculeze C1 =A+B, C2 =A-B, C3 =-A+B, C4 =-A-B prin
reprezentare în C2 pe 5 biti
C1 = A + B 0 0 1 0 0 +
0 1 0 1 1
0 1 1 1 1
C2 = A - B = 0 0 1 0 0 +
= A + C1(B) 1 0 1 0 0
1 1 0 0 0
C2 =rC1(C2) 1 0 1 1 1
C3 = -A + B = 1 1 0 1 1 +
= C1(A) + B 0 1 0 1 1
0 0 1 1 0
1
0 0 1 1 1
C4 = -A - B = 1 1 0 1 1 +
= C1(A) + 1 0 1 0 0
13.01.2004 68 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
+ C1(B) 0 1 1 1 1
1
1 0 0 0 0
C2 =rC1(C2)1 1 1 1 1 1
13.01.2004 69 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
unde z2n-2 , xn-1 si yn-1 , sunt semnele produsului si ale celor doi
factori. Prin aplicarea relatiei (2.42) se obtin cazurile particulare evidentiate
mai jos.
0 ⊕0 = 0 ; ( +) ⋅ ( + ) =+
0 ⊕1 = 1 ; ( + ) ⋅ (− ) =−
(2.43)
1⊕ 0 =1 ; ( −) ⋅ ( + ) =−
1 ⊕1 = 0 ; ( −) ⋅ ( − ) =+
Produsele partiale P0, P1, ….,Pn-3,Pn-2 se determina dupa cum
urmeaza:
P0 = x ⋅ y0 ⋅ 2 0
P1 = x ⋅ y1 ⋅ 21
(2.44)
.......... .......... ..
Pn −2 = x ⋅ yn − 2 ⋅ 2n − 2
13.01.2004 70 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
11011 x deînmultit
10111 înmultitor
0000011011 x • 20
(x→stânga 0 pozitii)
0000110110 x • 21 (x→stânga 1 pozitie)
0001101100 x • 22
(x→ stânga 2 pozitii)
0000000000 0 pentru ca y3 = 0
0110110000 x • 24 (x→stânga 4 pozitii)
1001101101 produs
Produsul reprezinta suma calculata simultan pentru toate cele cinci
produse partiale. Având în vedere ca în calculator se executa la un moment
dat numai suma a doua numere, înmultirea se poate efectua conform
etapizarii prezentate mai jos.
11011x deînmultit
10111 înmultitor
0000000000 suma initiala
11011 primul produs partial
0000011011 prima suma
11011 al doilea produs partial
0001010001 a doua suma
11011 al treilea produs partial
0010111101 a treia suma
00000 al patrulea produs partial
0010111101 a patra suma
11011 al cincilea produs partial
1001101101 produs
Prin ambele metode rezulta |Z| = 1001101101 respectiv
Z = 1 1001101101.
Verificare: x•y = -621.
p = - (1•29 + 1•26 + 1•25 + 1•23 +1•22 +1) =
= - (512 + 64 + 32 + 8 + 4 +1) = - 621.
13.01.2004 71 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
13.01.2004 72 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
• Daca x>0
[x] c=0 xn-2 xn-3……..x1 x0
Deplasarea la stânga
[2x] c= xn-2 xn-3……..x1 x0 0
Deplasarea la dreapta
[2-1 x]c= 0 0 xn-2 xn-3……..x1
• Daca x<0
[x] c=1 xn-2 xn-3……..x1 x0
Deplasarea la stânga
[2x] c= xn-2 xn-3……..x1 x0 0
Deplasarea la dreapta
[2-1 x]c= 1 1 xn-2 xn-3……..x1
13.01.2004 73 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
x > 0, y > 0,
a. (2.45)
[x ]c ⋅ [ y]c = x ⋅ y = [x ⋅ y]c
Exemplu
Fie n = 5 si x = + 17 si y = +12
[x ]c = 17 = 17 [ y ]c = 12 = 12
[z ]c = 17 12 = 204
Valoarea produsului este P=(17)?(12)= 204 , respectiv [P]c = [z]c .
[x ]c = 25 − − 17 = 32 − 17 = 15 [ y]c = 12 = 12
[z ]c incorect = 25 12 − − 17 12 = 32 ⋅ 12 − 17 ⋅12 = 384 − 204 = 180
[z ]c corect = 210 − − 17 12 = 1024 − 17 ⋅12 = 1024 − 204 = 820
cor = 210 − 25 ⋅ 12 = 1024 − 32 ⋅12 = 1024 − 384 = 640
[z ]c corect = [z ]c incorect+ cor = 180 + 640 = 820
Valoarea produsului este P=(-17)?(12)=-204 iar în cazul unei
reprezentari pe 10 biti [P]c = 210 - ?-204 ?= 1024 – 204 = 820. Din calculele
anterioare rezulta egalitatea celor doua produse respectiv [P]c = [z]c corect
13.01.2004 74 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
[x ]c = 17 = 17 [ y ]c = 25 − − 12 = 32 − 12 = 10
[z ]c incorect = 25 ⋅ 17 − 17 ⋅ − 12 = 32 ⋅17 − 17 ⋅ 12 = 544 − 204 = 440
[z ]c corect = 210 − 17 ⋅ − 12 = 1024 − 17 ⋅ 12 = 1024 − 204 = 820
cor = 210 − 25 ⋅ 17 = 1024 − 32 ⋅ 17 = 1024 − 544 = 480 (corector)
[z ]c corect = [z ]c incorect+ cor = 440 + 480 = 820
Valoarea produsului este P=(17)?(-12)=-204 iar în cazul unei
10
reprezentari pe 10 biti [P]c = 2 - ?-204 ?= 1024 – 204 = 820. Din calculele
anterioare rezulta egalitatea celor doua produse respectiv [P]c = [z]c corect
d.
[z ]c = [x]c ⋅ [y ]c = 2 2 n − 2 n ⋅ x ⋅ −2 n ⋅ y + x⋅ y
(2.48)
rezultat incorect
[z ]c = [x]c ⋅ [y ]c = x ⋅ y rezultat corect
Se impune o corectie cu − 2 2n + 2n ⋅ x + 2n ⋅ y care se aplica
rezultatului incorect.
Exemplu
Fie n = 5 si x = - 17 si y = -12
13.01.2004 75 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
[x ]c = 25 − − 17 = 32 − 17 = 15 [ y]c = 25 − − 12 = 32 − 12 = 20
[z ]c incorect = 210 − 25 ⋅ − 17 − 25 ⋅ − 12 + − 17 ⋅ − 12 =
= 1024 − 32 ⋅17 − 32 ⋅ 12 + 17 ⋅12 = 1024 − 544 − 384 + 204 = 300
[z ]c corect = − 17 ⋅ − 12 = 17 ⋅ 12 = 204
Y = − yn −1 ⋅ 2n −1 + yn −2 ⋅ (2 n −1 − 2n −2 ) + yn −3 ⋅ ( 2n − 2 − 2 n −3 ) +
+ .......... + y1 ⋅ ( 22 − 21 ) + y 0 ⋅ ( 21 − 20 )
sau
Y = ( yn −2 − y n−1 ) ⋅ 2n −1 + ( y n −3 − y n −2 ) ⋅ 2 n− 2 + ..... +
(2.50)
+ ( y 2 − y3 ) ⋅ 23 + ( y1 − y2 ) ⋅ 2 2 + ( y0 − y1 ) ⋅ 21 + ( y−1 − y0 ) ⋅ 20
13.01.2004 76 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
0 0 0 0
0 1 -1 -X·2i
1 0 1 X·2i
1 1 0 0
2.4.2.3.Înmultirea cu puteri ale lui 2
O categorie speciala de înmultire o reprezinta înmultirea cu puteri
ale bazei 2 respectiv cu 2k , care presupune deplasari dupa cum urmeaza:
k>0 → deplasare stânga cu k pozitii (se adauga zerouri în pozitiile
nesemnificative din dreapta ramase libere);
k<0 → deplasare dreapta cu k pozitii (se adauga zerouri în pozitiile
semnificative ramase libere).
Exemple
1. 28 • 22 = 112
7 6 5 4 3 2 1 0 Stânga 2 pozitii 7 6 5 4 3 2 1 0
0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0 0 0
Zerouri adaugate
2. 28 / 22 = 28 • 2-2 = 7
7 6 5 4 3 2 1 0 Dreapta 2 pozitii7 6 5 4 3 2 1 0
0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0 0 0
Zerouri adaugate
Verificare 1•22 + 1•21 +1•20 = 4 + 2 + 1 = 7
13.01.2004 77 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
2 00…001 Se aduna A
3 00…010 Se aduna 2A
.. .. ..
. . .
k
2k 11…111 Se aduna (2 -1)A
2 01 Se aduna A
3 10 Se aduna 2A
4 11 Se aduna 3A
14
CCMPS – Cifra Cea Mai Putin Semnificativa
13.01.2004 78 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
2A=00010110 3A=00100001
A 1 0 1 1 x
B 1 1 0 1
1 0 1 1 Prima grupa 01
1 0 0 0 0 1 A doua grupa 11
P 1 0 0 0 1 1 1 1
15
Daca aceasta conditie nu este îndeplinita se va transforma împartitorul, iar dupa
efectuarea împartirii se va ajusta corespunzator câtul.
13.01.2004 79 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
Da
2Ri ≥ B
Împartire
invalida
q i =1 q i =0
Ri =2 Ri-1 -B
Nu
S-a obtinut q n
16
Primul rest partial R0 =A se compara cu B. Daca B<R0 se scade B din R0 iar
cifra câtului este 1; în caz contrar scaderea nu se executa iar cifra câtului este 0. În
ambele situatii rezultatul obtinut se deplaseaza cu o pozitie la stânga devenind
restul partial R1 .
13.01.2004 80 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
0. 0 1 1 0 0 0 1 0 : 0 . 1 0 0 1= 0 . 1 0 1 0
R0 0 1100010 0 1 0 0< 1 00 1
R0 ? 2 1 100010 - 2 R3 < B Nu scadere q4=0
B 1 001 1 1 0 1> 1 00 1
R1 = R0 ? 2 - B 0 011010 2 R2 > B - scadere q3=1
R2 = R1 ? 2 0 11010 0 1 1 0< 1 00 1
R2 ? 2 1 1010 - 2 R1 < B - nu scadere q2=0
B 1 001 1 1 0 0> 1 00 1
R3 = R2 ? 2 - B 0 1000 2 R0 > B - scadere q1=1
R4 = R3 ? 2 1 000 0 1 1 0< 1 00 1
R0 < B - nu scadere q0=0
Q= 0 . 1010 R4 = 0 . 0 0 0 0 1 0 0 0
Verificare 0 . 1010x Q
0 . 1001 B
1010 A = B? Q+ R4
1 001
0. 01 0 1 0 0 1 0+
0. 00 001000 R4
0. 01 011010 A
13.01.2004 81 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
START
Da
A≥B
Nu
Nu
S-a obtinut q n
Da
STOP
13.01.2004 82 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
Exemplu
Sa se efectueze împartirea A:B unde A=0.01100010 si B=0.1001.
0 . 01 1 00 01 0 : 0 . 1 0 01= 0 . 1 01 0
01 1 00 01 0
- 10 0 1 ; Se scade B
11 0 10 0 1 0 =A - B< 0 ; q0 = 0
+ 10 0 1 B ; Se reface restul partial prin adunarea lui B
01 1 00 01 0
11 0 00 10 ; Se executa deplasarea cu o pozitie la stânga
- 10 0 1 ; Se scade B
0 0 1 10 1 0 = 2 R1 - B > 0 ; q1 = 1
0 1 1 01 0 ; Se executa deplasarea cu o pozitie la stânga
- 1 0 0 1 ; Se scade B
1 10 1 1 0 = 2 R2 - B < 0 ; q2 = 0
+ 1 00 1 ; Se reface restul partial prin adunarea lui B
0 11 0 1 0 ;
1 10 1 0 ; Se executa deplasarea cu o pozitie la stânga
- 1 00 1 ; Se scade B
01 0 0 0 = 2 R3 - B > 0 ; q3 = 1
10 0 0 ; Se executa deplasarea cu o pozitie la stânga
- 10 0 1 ; Se scade B
0 11 1 = 2 R4 - B < 0 ; q4 = 0
Q=0 . 1 010 R4 = 0 . 0 0 0 0 1 0 0 0
Verificare 0 . 1 01 0 x Q
0 . 1 00 1 B
1 01 0 A = B ? Q + R4
1 00 1
0 . 0 1 01 0 01 0+
0 . 0 0 00 1 00 0 R4
0 . 0 1 01 1 01 0 A
13.01.2004 83 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
START
Da
A≥B
Nu
Nu
S-a obtinut q n
Da
STOP
13.01.2004 84 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
Exemplu
Sa se efectueze împartirea A:B unde A=0.01100010 si B=0.1001.
0 . 0 1 1 0 0 0 1 0 : 0 . 1 0 0 1= 0 . 1 0 1 0
01 10 00 10
- 10 01 ; Se scade B
1 1 0 1 0 0 1 0 =A - B< 0 ; q0 = 0
1 0 1 0 0 1 0 = 2 R1 ; Se executa deplasarea cu o pozitie la stânga
+10 01 ; Se aduna B
0 0 1 1 0 1 0 = 2 R1 + B > 0 ; q1 = 1
0 1 1 0 1 0 = 2 R2 ; Se executa deplasarea cu o pozitie la stânga
- 10 0 1 ; Se scade B
11 0 11 0 = 2 R2 - B < 0 ; q2 = 0
1 0 1 1 0 = 2 R3 ; Se executa deplasarea cu o pozitie la stânga
+ 10 0 1 ; Se aduna B
0 1 0 00 = 2 R3 + B > 0 ; q3 = 1
1 0 0 0 = 2 R4 ; Se executa deplasarea cu o pozitie la stânga
- 1 0 0 1 ; Se scade B
0 11 1 = 2 R4 - B < 0 ; q4 = 0
Q=0 . 1 010 R4 = 0 . 0 0 0 0 1 0 0 0
Verificare 0 . 1 01 0 x Q
0 . 1 00 1 B
1 01 0 A = B ? Q + R4
1 00 1
0 . 0 1 01 0 01 0+
0 . 0 0 00 1 00 0 R4
0 . 0 1 01 1 01 0 A
13.01.2004 85 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
A = ( ± M 1 ) b ⋅ b C1 , B = ( ± M 2 ) b ⋅ b C2
A ± B = (( ± M 1 ) b ± ( ± M 2 ) b ⋅ b − D ) ⋅ bC1 (2.53)
potrivit schemei logice din figura 2.12.
START
D=C1 -C2
Nu
Da
D=0
Nu
Da C=C1
D>0
Nu
C=C1 C=C2
M2 = M2 ?16 -D M1 = M1 ?16 D
M=M1 ± M2
Fig. 2.12. Algoritmul de
adunare/scadere a numerelor Da Da
reprezentate în virgula mobila. M<1 M ≥ 0.1
Nu Nu
M= M?16 -1 M= M?16 1
C=C+1 C=C-1
STOP
13.01.2004 86 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
A = ( ± M 1 ) b ⋅ b C1 , B = ( ± M 2 ) b ⋅ b C2
P = A ⋅ B = (( ± M1 ) b ⋅ ( ± M 2 ) b ) ⋅ bC1+C 2 (2.54)
Înmultirea mantiselor si adunarea caracteristicilor se poate realiza
potrivit procedurilor prezentate anterior. În ceea ce priveste normalizarea
rezultatului, aceasta se realizeaza în acelasi mod cu normalizarea
rezultatului adunarii/scaderii numerelor reprezentate în virgula mobila.
Mantisa rezultata va avea un numar dublu de cifre, din care se vor retine
numai jumatate daca se doreste respectarea formatului.
13.01.2004 87 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
Exemplu
Fie A = 0.1F7•163 si B = 0.B54•16-1 (baza b=16). Sa se
calculeze P=A·B .
M=0.1F7•0.B54=0.16420C
C = C1+C2 = 3 – 1= 2
M1 0 . 1F 7 x
M2 0 . B5 4
7D C
9D 3
1 5 9D
0 . 1 6 4 2 0 C
2
P = 0. 1 6 4 2 0 C · 16
A = ( ± M 1 ) b ⋅ b C1 , B = ( ± M 2 ) b ⋅ b C2
Exemplu
13.01.2004 88 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
1 F 7 0 B 5 4
1 6A 8 0. 2 C 6 7
= 8C 8 0
8 7 F 0
= 4 9 0 0
4 3 F 8
= 5 0 8 0
4 F A C
= = D 4
Q= 0. 2 C 6 7 · 164
17
Este valabila conventia 1pentru numere negative, 0 pentru numere pozitive.
13.01.2004 89 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
Exemplu
Fie A1 10 = 0.341, A2 10 = -0.341 si B1 10 = +0.582, B2 10 = -0.582
Sa se determine cele trei forme de reprezentare BCD, utilizând codul 8421 .
A1 BCD -MS =0 0011 0100 0001 B1 BCD -MS =0 0101 1000 0010
A1 BCD -C9 =0 0011 0100 0001 B1 BCD -C9 =0 0101 1000 0010
A1 BCD -C10=0 0011 0100 0001 B1 BCD -C10=0 0101 1000 0010
13.01.2004 90 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
+ 0 1 2 3 4 5 6 7 8 9
0 0 1 2 3 4 5 6 7 8 9 Aceasta corectie face ca operatia de
01 1 2 3 4 5 6 7 8 9 A adunare sa se efectueze în baza 10 si nu 16.
2 2 3 4 5 6 7 8 9 A B
În continuare vor fi prezentate exemple
3 3 4 5 6 7 8 9 A B C
4 4 5 6 7 8 9 AB C D
de realizare a operatie de adunare în cod 8421
5 5 6 7 8 9 ABC D E utilizând cele trei reprezentari (marime-semn, C9,
6 6 7 8 9 ABCD E F C10) .
7 7 8 9 A B C D E F 10
8 8 9 A B C D E F 10 11
9 9 A B C D E F 10 11 12
Exemplu
Fie A10 = 0.789, si B10 = 0.165.
Sa se determine în cele trei forme de reprezentare BCD, utilizând
codul 8421 C1 BCD =ABCD + BBCD .
C2 BCD =-ABCD + BBCD
C3 BCD =ABCD - BBCD
C4 BCD =-ABCD - BBCD
ABCD-MS = 0 0 1 1 1 1 0 00 1 0 01 +
BBCD-MS = 0 0 0 0 1 0 1 10 0 1 01
10 00 1 1 10+ 1 1 10+ ? Corectii necesare, deoarece tetradele
0 1 10 0 1 10 corespunzatoare rangurilor 10-2 si 10-3
0 1 00 0 1 00 sunt mai mari decât 1001
1? 1?
C1BCD-MS =0 10 01 0 1 01 0 1 00 ? Se aduna transportul generat
C110 =+ 0 . 9 5 4
13.01.2004 91 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
C210 = - ( 1 - 0. 3 7 6 )= - 0 . 624
C310 =+ 0 . 6 2 4
C410 = - 0 . 9 54
13.01.2004 92 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
ABCD-C10 = 0 0 1 1 1 1 0 00 1 0 01 +
BBCD-C10 = 0 0 0 0 1 0 1 10 0 1 01
10 00 1 1 10+ 1 1 10+ ? Corectii necesare, deoarece tetradele
0 1 10 0 1 10 corespunzatoare rangurilor 10-2 si 10-3
0 1 00 0 1 00 sunt mai mari decât 1001
1? 1?
C1BCD-MS =0 10 01 0 1 01 0 1 00 ? Se aduna transportul generat
C110 =+ 0 . 9 5 4
ABCD-C10 = 1 0 0 1 0 0 0 01 0 0 01 + -A
BBCD-C10 = 0 0 0 0 1 0 1 10 0 1 01 B
C2BCD-C10 = 1 0 0 1 1 0 1 11 0 1 10 ? Nu corectii, rezultatul este C10
- 3 7 6
C210 =- 6 2 4
C2BCD-MS = 1 0 1 1 0 0 0 20 0 1 00
C210 = - ( 1 - 0. 3 7 6 )= - 0 . 624
13.01.2004 93 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
ABCD-C10 = 0 0 1 11 1 0 00 1 0 01 +
BBCD-C10 = 1 1 0 00 0 0 11 0 1 01
1 1 11 1 0 11+ 1 1 10+ ? Corectii necesare, deoarece tetradele
0 1 10 0 1 10 0 1 10 corespunzatoare rangurilor 10-2 si 10-3
0 1 01 0 0 01 0 1 00 sunt mai mari decât 1001
1? 1? 1?
C3BCD-MS =0 0 1 00 0 0 10 0 1 00 ? Se aduna transportul generat
C310 =+ 0 . 6 2 4
ABCD-C10 = 1 0 0 10 0 0 01 0 0 01 +
BBCD-C10 = 1 1 0 00 0 0 11 0 1 01
1 0 10 + 0 1 00 0 1 10 ? Corectie necesara, deoarece tetrada
0 1 10 corespunzatoare rangului 10-1
0 0 00 0 1 00 0 1 10 este mai mare decât 1001
1?
C4BCD-C10 =1 0 0 00 0 1 00 0 1 10 ? Se aduna transportul generat
- 0 4 5
C410 =- 9 5 4
C4BCD-MS =1 1 0 01 0 1 01 0 1 01
C410 = - 0 . 9 54
13.01.2004 94 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
ABCD-C9 = 0 0 1 1 1 1 0 00 1 0 01 +
BBCD-C9 = 0 0 0 0 1 0 1 10 0 1 01
10 00 1 1 10+ 1 1 10+ ? Corectii necesare, deoarece tetradele
0 1 10 0 1 10 corespunzatoare rangurilor 10-2 si 10-3
0 1 00 0 1 00 sunt mai mari decât 1001
1? 1?
C1BCD-MS =0 10 01 0 1 01 0 1 00 ? Se aduna transportul generat
C110 =+ 0 . 9 5 4
ABCD-C9 = 1 0 01 0 0 0 01 0 0 00 + -A
BBCD-C9 = 0 0 00 1 0 1 10 0 1 01 B
C2BCD-C9 = 1 0 01 1 0 1 11 0 1 01 ? Nu corectii, rezultatul este C9
- 3 7 5
C210 = - 6 2 4
C2BCD-MS = 1 0 11 0 0 0 20 0 1 00 C210=bn-C2C9-b-m =1-0.375-0.001=0.624
-
C210 = 0 . 624
13.01.2004 95 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
ABCD-C9 = 0 0 1 11 1 00 0 1 001 +
BBCD-C9 = 1 1 0 00 0 01 1 0 100
1 1 11 1 01 1+ 1 1 0 1+ ? Corectii necesare, deoarece tetradele
0 1 10 0 11 0 0 110 corespunzatoare rangurilor 10-1 ,10-2 si
0 1 01 0 00 1 0 011 10-3 mai mari decât 1001
sunt
1? 1? 1??
C3BCD-MS = 0 0 1 10 0 01 0 0 0 1 1+ ? Se aduna transportul generat
1?
0 001 ? Se aduna transportul de la cifra
C3BCD-MS = 0 0 1 10 0 01 0 0 100 desemn
semn
C310 = + 0 . 6 24
ABCD-C9 = 1 0 0 10 0 001 0 00 0 +
BBCD-C9 = 1 1 0 00 0 011 0 10 0
1 0 10 + 0 100 0 10 0 ? Corectie necesara, deoarece tetrada
0 1 10 corespunzatoare rangului 10-1
0 0 00 0 100 0 10 0 este mai mare decât 1001
1??
C4BCD-C9 = 1 0 0 00 0 100 0 10 0+ ? Se aduna transportul generat
1?
0 00 1 ? Se aduna transportul de la cifra
1 0 0 00 0 100 0 10 1 de semn
C410 = - 0 4 5
C4BCD-MS = 1 1 0 01 0 101 0 10 0 C210=bn-C2C9-b-m =1-0.045-0.001=0.954
C410 = - 0 . 9 54
13.01.2004 96 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
13.01.2004 97 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
P= 0 . 0 9 9 9 9 2
13.01.2004 98 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
13.01.2004 99 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
A 0 100 00 11 000 1 x
B 0 010 00 11 001 0
0000 000 0 00 00 0 000 00 00 000 0 Produs initial
00 00 1 000 01 10 001 0 2xA
000 1 00 10 1 001 00 11 3xA
0000 100 0 01 10 0 010 2xA
100 1 10 00 0 011 10 01 001 0
1 0 110
0000 100 1 10 01 1 001 10 01 0 0 1 0 Rezultat final
P = 0 . 0 9999 2
Exemplu
Fie A10 = 0.176 (deîmpartit) , si B10 = 0.731 (împartitor).
Sa se determine Q=A/B folosind metoda comparatiei.
0 xB = 0 . 000
1 xB = 0 . 731
2 xB = 1 . 462
3 xB = 2 . 193
4 xB = 2 . 924
5 xB = 3 . 655
6 xB = 4 . 386
7 xB = 5 . 117
8 xB = 5 . 848
9 xB = 6 . 579
0 .1 7 6 : 0 . 7 3 1 = 1 7 6 : 7 3 1
1 76 -
0
1 76 0 - 0 < 1 76 q0 = 0
1 46 2
= 29 8 0- 1 4 6 2 < 1 7 6 0 q1 = 2
29 2 4
== 5 6 5 6 < 1 7 6 0 q2 = 4
0 . 1 7 6 = 0 .7 3 1 x 0. 2 4 + 0 . 0 0 0 5 6
Q= 0 . 24 R= 0 . 0 00 5 6
18
Pentru simplitate se va lucra cu cifre zecimale.
13.01.2004 101 / 104
Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice
b – scaderi repetate
D e î mp a r t i t A = 0.17 6
Î mpa r t i to r B = 0.73 1
0 .1 7 6 : 0 . 7 3 1 = 1 7 6 : 7 3 1
0 . 1 7 6 = 0.7 3 1 x 0. 2 4 + 0 . 0 0 0 5 6
Q= 0 . 24 R = 0 . 0 0 05 6
Exemplu
Fie A10 = 0.136 (deîmpartit) , si B10 = 0.643 (împartitor).
Sa se determine Q=A/B folosind metoda refacerii restului partial.
D e î mp a r t i t A = 0.13 6
Î mpa r t i to r B = 0.32 1
0 .1 3 6 : 0 . 3 2 1 = 1 7 6 : 7 3 1
1 3 6 -
3 2 1
- 1 9 5 + - 555 < 0 q0=0
3 2 1 Se reface restul partial
1 3 6 0 - 136x10
3 2 1 Prima scadere
1 0 3 9 - 1039>0
3 2 1 A doua scadere
7 1 8 - 718>0
3 2 1 A treia scadere
3 9 7 - 397>0
3 2 1 A patra scadere
= 7 6 - 76>0
3 2 1 A cincea scadere
- 2 4 5 + - 245 < 0 q1=4
3 2 1 Se reface restul partial
7 6 0 -76x10
3 2 1 Prima scadere
4 3 9 -439>0
3 2 1 Prima scadere
1 1 8 -118>0
3 2 1 A treia scadere
- 2 0 3+ - 203 < 0 q2=2
3 2 1 Se reface restul partial
1 1 80 - 118x10
3 21 Prima scadere
8 59 + 859>0
3 21 A doua scadere
5 38 - 538>0
3 21 A treia scadere
2 17 - 217>0
3 21 A patra scadere
- 1 04 + - 104 < 0 q3=3
3 21 Se reface restul
2 17 Restul
Q = 0 . 4 2 3 R = 0 . 0 0 021 7
0 .1 8 2 : 0 . 6 4 3 = 1 8 2 : 6 4 3
1 8 2 0 - 136x10
64 3 Prima scadere
1 1 7 7 - 1177>0
64 3 A doua scadere
53 4 - 534>0
64 3 A treia scadere
- 10 9 - -109<0 q1=2
- 1 0 9 0 + -109x10
64 3 Prima adunare
- 44 7 + -447<0
64 3 A doua adunare
19 6 + 196 > 0 q2=C10(2)=8
1 9 6 0 - 196x10
64 3 Prima scadere
1 3 1 7 - 1317>0
64 3 A doua scadere
67 4 - 674>0
64 3 A treia scadere
3 1 - 31>0 - restul
64 3 A patra scadere
- 61 2 -612<0 q3=3
Q = 0 . 2 8 3 R = 0 . 0 0 003 1