Está en la página 1de 25

Aritmetica calculatorului

•Numere intregi cu si fara semn


•Numere in virgula flotanta

ACSO2 - 1
Numere fara semn
1011doi = (1 x 23) + (0 x 22) + (1 x 21) + (1 x 20) =
= (1 x 8) + (0 x 4) + (1 x 2) + (1 x 1) = 11zece
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 01 0 1 1
(32 de biti)
cel mai semnificativ bit cel mai putin semnificativ bit

0000 0000 0000 0000 0000 0000 0000 0000doi = 0zece


0000 0000 0000 0000 0000 0000 0000 0001doi = 1zece
1111 1111 1111 1111 1111 1111 1111 1111doi = 4 294 967 295zece
ACSO2 - 2
Numere cu semn
In complement fata de doi:
0000 0000 0000 0000 0000 0000 0000 0000doi = 0zece
0000 0000 0000 0000 0000 0000 0000 0001doi = 1zece
0000 0000 0000 0000 0000 0000 0000 0010doi = 2zece
0111 1111 1111 1111 1111 1111 1111 1110doi = 2 147 483 646zece
0111 1111 1111 1111 1111 1111 1111 1111doi = 2 147 483 647zece
1000 0000 0000 0000 0000 0000 0000 0000doi = -2 147 483 648zece
1000 0000 0000 0000 0000 0000 0000 0001doi = -2 147 483 647zece
1111 1111 1111 1111 1111 1111 1111 1101doi = -3zece
1111 1111 1111 1111 1111 1111 1111 1110doi = -2zece
1111 1111 1111 1111 1111 1111 1111 1111doi = -1zece
ACSO2 - 3
Numere cu semn - exemplu
Valoarea numarului este:
(x31 x -231)+(x30 x 230)+(x29 x 229)+…+(x1 x 21)+(x0 x 20)
Care este valoarea zecimala a numarului binar:
1111 1111 1111 1111 1111 1111 1111 1100doi ?
(1 x -231)+(1 x 230)+(1 x 229)+…+(1 x 22)+(0 x 21)+(0 x 20)=
= -231+ 230 + 229 +…+ 22 =
= -2 147 483 648zece + 2 147 483 647zece= -4zece

ACSO2 - 4
Negarea unui numar cu semn
x + x = -1 x +1=-x
Care este negatul numarului 2zece in complement fata de doi?
2zece = 0000 0000 0000 0000 0000 0000 0000 0010doi
Negat:
1111 1111 1111 1111 1111 1111 1111 1101doi +
1doi
1111 1111 1111 1111 1111 1111 1111 1110doi = -2zece
Invers, -2zece negat:
0000 0000 0000 0000 0000 0000 0000 0001doi +
1doi
0000 0000 0000 0000 0000 0000 0000 0010doi = 2zece
ACSO2 - 5
Adunarea numerelor
(7zece) 0000 0000 0000 0000 0000 0000 0000 0111doi +
(6zece) 0000 0000 0000 0000 0000 0000 0000 0110doi
0000 0000 0000 0000 0000 0000 0000 1101doi = 13zece

ACSO2 - 6
Scaderea numerelor

(7zece) 0000 0000 0000 0000 0000 0000 0000 0111doi -


(6zece) 0000 0000 0000 0000 0000 0000 0000 0110doi
0000 0000 0000 0000 0000 0000 0000 0001 doi = 1zece

sau

(7zece) 0000 0000 0000 0000 0000 0000 0000 0111doi +


(-6zece) 1111 1111 1111 1111 1111 1111 1111 1010doi
0000 0000 0000 0000 0000 0000 0000 0001doi = 1zece

ACSO2 - 7
Depasiri
Operatia Operandul A Operandul B Rezultatul care
indica depasire
A+B >= 0 >= 0 <0

A+B <0 <0 >= 0

A-B >= 0 <0 <0

A-B <0 >= 0 >= 0

ACSO2 - 8
Inmultirea secventiala hardware a numerelor

ACSO2 - 9
Algoritmul
de inmultire
a numerelor

ACSO2 - 10
Inmultirea hardware revizuita

ACSO2 - 11
Inmultirea numerelor - exemplu

ACSO2 - 12
Impartirea hardware a numerelor

ACSO2 - 13
Algoritmul
de impartire
a numerelor

ACSO2 - 14
Impartirea hardware- revizuita

ACSO2 - 15
Impartirea numerelor - exemplu

ACSO2 - 16
Numere in virgula mobila
3.14159265…zece( )
2.71828… zece(e)
0.000000001 sau 1.0 zece x 10-9 scriere
stiintifica
3155760000 sau 3.15576zece x 109

1.0 zece x 10-9 forma


1.0 doi x 2-2 normalizata
1.xxxxxxdoi x 2yyyy

ACSO2 - 17
Numerele in virgula mobila
• simpla precizie

1 bit 8 bits 23 bits

- valoarea numarului in virgula mobila este: (-1)S x F x 2E


- fraction este doar partea fractionala: F = 1 + fraction
- numarul se obtine astfel:
(-1)S x ((x22 x 2-1)+(x21 x 2-2)+(x20 x 2-3)+…+(x0 x 2-23)) x 2E

ACSO2 - 18
Numerele in virgula mobila
• dubla precizie

Codarea IEEE 754 pentru numerele in virgula mobila

ACSO2 - 19
Numerele in virgula mobila
-utilizarea deplasamentului
(-1)S x (1+fraction) x 2(E-deplasament)
- 127 pentru simpla precizie
-1023 pentru dubla precizie

-avantaj:
apar numai valori pozitive la exponent
ACSO2 - 20
Numerele in virgula mobila - exemplu
Care este reprezentarea binara a numarului zecimal –0.75zece ?

-0.75zece= –3/4zece = -3/22zece = -11doi/22zece = -0.11doi


-0.11doi=-0.11 x 20 = -1.1 x 2-1

In simpla precizie: -1.1 x 2-1 = (-1)S x (1+f) x 2(E-127)


(-1)1 x (1+.1000 0000 0000 0000 0000 000doi) x 2(126-127)
31 30 29 … 23 22 21 … 43210
1 0 1 1 1 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000000
1bit 8 biti 23 biti

ACSO2 - 21
Numerele in virgula mobila - exemplu
In dubla precizie: -1.1 x 2-1 = (-1)S x (1+f) x 2(E-1023)
(-1)1 x (1+.1000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 000doi)x
x 2(1022-1023)

31 30 29 … 20 19 18 … 43210
1 0 1 1 1 1 1 1 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 000000
1bit 11 biti 20 biti
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000000
32 biti

ACSO2 - 22
Algoritmul
de adunare
in virgula
mobila

ACSO2 - 23
Unitatea
aritmetica
pentru
adunarea
in virgula
mobila

ACSO2 - 24
Algoritmul
de inmultire
in virgula
mobila

ACSO2 - 25

También podría gustarte