Sunteți pe pagina 1din 36

II.

REPREZENTAREA
NUMERELOR ÎN
CALCULATOR. ARITMETICA
BINARĂ
2.1. Reprezentarea
numerelor în calculator
 Reprezentarea numerelor în calculatoarele numerice
se face pe baza sistemului de numeraŃie binar
 Numere pozitive şi negative → reprezentare semn?
 numere fără semn - reprezentare în binar sau în cod
binar-zecimal
 numere cu semn - asociat pe poziŃia cea mai
semnificativă un bit special de semn
 convenŃie:
 semnul plus - cifra 0
 semnul minus - cifra 1
 un număr binar de “n” biŃi, cu semn are “n+1” biŃi
13.10.2010 Curs 2 ASDN 2
2.1. Reprezentarea
numerelor în calculator

 Numere:
 întregi
 fracŃionare
 PoziŃia virgulei la numere fracŃionare → determină
reprezentarea → poziŃie fixă sau variabilă a virgulei:
 reprezentare în virgulă fixă
 reprezentare în virgulă mobilă (flotantă)

13.10.2010 Curs 2 ASDN 3


2.1.1. Reprezentarea
numerelor în virgulă fixă

 Calculatoarele pot opera cu numere de lungime fixă


 Numărul de cifre (de exemplu, 32 sau 64 de poziŃii
binare) determinat de numărul de celule din care
sunt realizate registrele utilizate
 PoziŃia virgulei
 se stabileşte iniŃial la proiectare
 nu se mai schimbă
 nu se realizează fizic, dar localizarea ei trebuie cunoscută
13.10.2010 Curs 2 ASDN 4
2.1.1. Reprezentarea
numerelor în virgulă fixă
 Blocurile aritmetice ale calculatoarelor care lucrează
în virgulă fixă:
 virgula în faŃa cifrei celei mai semnificative
 numerele sunt deci subunitare (numerele reale sunt
transformate în prealabil în acest sens)
 Indicarea semnului → realizată prin mai multe
tehnici ⇒ moduri diferite de reprezentare:
 mărime şi semn
 complement faŃă de 2 (cod complementar)

 complement faŃă de 1 (cod invers)


13.10.2010 Curs 2 ASDN 5
Complement

DefiniŃii:
 (N)b = bn - (N)b
 (N)b = bn - (N)b - b-m
 (N)b = complement faŃă de baza “b” a numărului (N)b
 (N)b = complement faŃă de “b-1” a numărului (N)b
 n = nr. de cifre ale părŃii întregi ale numărului N
 m = nr. de cifre ale părŃii fracŃionare ale numărului N
 Dar, N = 2n - 1 = cel mai mare număr binar de “n” cifre care
poate fi reprezentat ⇒ 2n necesar pentru complement nu se
poate reprezenta ⇒ 2n se echivalează cu numărul 0
13.10.2010 Curs 2 ASDN 6
Complement

Exemple generale:
 N1 = (123,45)10 cu n = 3, m = 2

 (N1)10 = 10n - N1 = 103 - 123,45 = 876,55


 (N1)10 = 10n - N1 - 10-m = 103 - 123,45 - 10-2 = 876,54
 N2 = (1101,011)2 cu n = 4, m = 3
 (N2)2 = 2n - N2 = 24 - 1101,011 = 0010,101
 (N2)2 = 2n - N2 - 2-m = 24 - 1101,011 - 2-3 = 0010,100

13.10.2010 Curs 2 ASDN 7


Complement

Determinarea complementului faŃă de 2 → există


3 procedee:
 (N)2 = 0 - N
 (N)2 = N + 2-n
 pornind de la dreapta spre stânga se păstrează
neschimbate cifrele egale cu 0, inclusiv prima cifră
egală cu 1, după care toate celelalte cifre se
inversează
 n = numărul de cifre ale numărului
13.10.2010 Curs 2 ASDN 8
Complement

Determinarea complementului faŃă de 1 → există


3 procedee:
 (N)2 = 0 - N - 2-n
 (N)2 = N - 2-n
 se inversează fiecare cifră în parte

13.10.2010 Curs 2 ASDN 9


Complement
 Exemplu de determinare a complementului faŃă de 2
 Numărul (N)2 = 101011
1. (N)2 = 000000 -
101011 =
010101
2. (N)2 = 010100 +
000001 =
010101
3. (N)2 = 010101
rămâne neschimbat
s-au inversat
13.10.2010 Curs 2 ASDN 10
Complement
 Exemplu de determinare a complementului faŃă de 1
 Numărul (N)2 = 101011
1. (N)2 = 000000 -
101011 -
000001 =
010100
2. (N)2 = 010101 -
000001 =
010100
3. (N)2 = 010100 →am inversat cifrele (0 cu 1, 1 cu 0)
13.10.2010 Curs 2 ASDN 11
Reprezentarea prin mărime
şi semn

 RelaŃia de reprezentare prin mărime şi semn:


n −1
N = an 2 n + ∑ i
a 2 i

i =− m

 an = bit de semn
 N pozitiv ⇒ an = 0
 N negativ ⇒ an = 1
 ai = cifrele binare ale numărului N
13.10.2010 Curs 2 ASDN 12
Reprezentarea prin mărime
şi semn

 Avantaj - asemănătoare cu scrierea manuală


 Dezavantaje pentru realizarea calculelor aritmetice:
 adunarea şi scăderea depind şi de semnele numerelor
 este necesară examinarea semnului înaintea operaŃiei
 sunt necesare blocuri diferite pentru adunare şi scădere
 Exemplu:
 +6 = 00110 -6 = 10110
semn cifre număr semn cifre număr

13.10.2010 Curs 2 ASDN 13


Reprezentarea prin
complement faŃă de 2

 RelaŃiile de reprezentare:
n −1
N = 0 ⋅ 2n + ∑ i
a 2 i pentru N > 0
i =− m
n −1
−m
N = −1 ⋅ 2 n + ∑ i
a 2 i
+ 2 pentru N < 0
i=− m
 ai = 1 - ai este complementul faŃă de 1 al cifrei ai
 Exemplu:
 +6 = 00110
 - 6 = 11010 (1010 = complementul faŃă de 2 al lui 6)
13.10.2010 Curs 2 ASDN 14
Reprezentarea prin
complement faŃă de 1

 RelaŃiile de reprezentare:
n −1
N = 0 ⋅ 2n + ∑ i
a 2 i pentru N > 0
i =− m
n −1
N = −1⋅ 2 n + ∑ i
a 2 i
pentru N < 0
i=−m
 ai = 1 - ai este complementul faŃă de 1 al cifrei ai
 Exemplu:
 +6 = 00110
 - 6 = 11001 (1001 = complementul faŃă de 1 al lui 6)
13.10.2010 Curs 2 ASDN 15
2.1.1. Reprezentarea
numerelor în virgulă fixă
 Un număr N în virgulă fixă se poate scrie:
N = a0 2 + N
0 *

 a0 = bit de semn
 N* are semnificaŃiile:
n
 mărime şi semn N * = ∑ ai 2 −i
i =1
n
−i −n
 N < 0 în complement faŃă de 2 N = ∑ ai 2 + 2
*

i =1
n
 N < 0 în complement faŃă de 1 N * = ∑ a i 2 −i
 ai = cifrele numărului i =1
 n = numărul de cifre din dreapta virgulei
13.10.2010  ai = 1- ai Curs 2 ASDN 16
2.1.1. Reprezentarea
numerelor în virgulă fixă

 Avantaje dacă virgula se plasează după prima


poziŃie binară:
 N* fiind subunitar poziŃia virgulei este aceeaşi după
înmulŃirea binară
 înmulŃirea nu va duce niciodată la depăşirea limitei
superioare a gamei de reprezentare a numerelor
 această plasare poate fi uşor memorată

13.10.2010 Curs 2 ASDN 17


2.1.2. Reprezentarea
numerelor în virgulă mobilă

 Pentru numere foarte mari sau foarte mici, cu grad


de precizie ridicat
 Reprezentarea unui număr - prin mantisă M şi
exponent E
 Exponent - indică ordinul de mărime al numărului
printr-o putere
 Mantisa determină mărimea (valoare) exactă a
numărului în cadrul ordinului respectiv
13.10.2010 Curs 2 ASDN 18
2.1.2. Reprezentarea
numerelor în virgulă mobilă
 Exemplu - o reprezentare pe 32 de biŃi:
SE SM
0 1 2 3 4 5 6 7 8 ………. 31
 bitul 0 = SE - semn exponent
 biŃii 1- 6 = exponent E
 bitul 7 = SM - semn mantisă
 biŃii 8-31 = mantisă M
 Numărul +12,34 se poate reprezenta în 2 moduri
 +0,1234 x 10+2 sau +1234 x 10-2
 Reprezentarea pe 32 de biŃi va fi:
 0 000010 0 000111111000110110001010 sau
 1 000010 0 000000000000010011010010
13.10.2010 Curs 2 ASDN 19
2.1.2. Reprezentarea
numerelor în virgulă mobilă
 În calculatoare se utilizează reprezentarea numai cu semn la
mantisă, nu şi la exponent ⇒ se foloseşte mărimea numită
“Caracteristică”
 Caracteristica numărului N: C = E + deplasament
 E = exponentul numărului (putere a lui 16)
 deplasamentul ales ca să rezulte întotdeauna o valoare pozitivă
(ex.: 64 sau 128)
 Valoarea exponentului E = (C - deplasament)
 avantaje
 este numai pozitiv ⇒ operaŃii simplificate
 cifra 0 reprezentată la fel cu reprezentarea în virgulă fixă ⇒ tratare similară
 dezavantaj - există o operaŃie de scădere în plus!
13.10.2010 Curs 2 ASDN 20
2.1.2. Reprezentarea
numerelor în virgulă mobilă
 Reprezentare în simplă precizie, de exemplu:
a) S C M
0 1 7 8 31
 Reprezentare în dublă precizie, de exemplu:
b) S C M
0 1 7 8 63
 Exemplu:
 Pentru caracteristica C = 7 ⇒ numerele pot fi între 0 şi 27-1 ⇒
0 ≤ C ≤ 127
 Pentru deplasament = 64 ⇒ exponentul E = C – 64, deci

-64 ≤ E ≤ 63
13.10.2010 Curs 2 ASDN 21
2.1.2. Reprezentarea
numerelor în virgulă mobilă

 Forma normalizată - bitul cel mai semnificativ al


mantisei = 1
 acest bit nu se mai memorează ⇒ mantisa câştigă un bit
semnificativ în plus
 simplificarea operaŃiilor
 creşterea preciziei
 Probleme cu reprezentarea valorii 0, care nu poate fi
normalizată ⇒ valoarea 0 are o reprezentare
specială
13.10.2010 Curs 2 ASDN 22
2.1.2. Reprezentarea
numerelor în virgulă mobilă
 Exemplu: gama numerelor reprezentate în
complement faŃă de 2, în cuvinte de 32 de biŃi:
 numere pozitive între: 0,5 • 2-128 şi (1 - 2-24) • 2127
 numere negative între: - (1 - 2-24) • 2127 şi - 0,5 • 2-128
 5 regiuni necuprinse în aceste domenii → depăşire
 depăşire inferioară negativă: < - (1 - 2-24) • 2127
 depăşire superioară negativă: > - 0,5 • 2-128
 zero
 depăşire inferioară pozitivă: < 0,5 • 2-128
 depăşire superioară pozitivă: > (1 - 2-24) • 2127
 coprocesoarele matematice şi unităŃile de calcul în
virgulă mobilă au mecanisme speciale pentru detectarea,
semnalizarea şi tratarea depăşirilor
13.10.2010 Curs 2 ASDN 23
2.1.2. Reprezentarea
numerelor în virgulă mobilă

 Compromis între dimensiunea mantisei şi a


exponentului
 mantisa de dimensiune mai mare ⇒ creşte precizia
numerelor care pot fi reprezentate
 exponentul de dimensiune mai mare ⇒ creşte domeniul
numerelor care pot fi reprezentate
 Creşterea numărului de biŃi pentru reprezentare:
 creşterea preciziei
 creşterea domeniului numerelor
13.10.2010 Curs 2 ASDN 24
2.1.2. Reprezentarea
numerelor în virgulă mobilă

 Standardele pentru “floating point”:


 IEEE 754 din 1985, actualizat în 2008
 IEEE 854 din 1987
 Reprezentarea numerelor în virgulă mobilă
 OperaŃii aritmetice în această reprezentare

13.10.2010 Curs 2 ASDN 25


2.2. Aritmetica binară

OperaŃii aritmetice cu numere fără semn


 Adunarea binară

 operaŃie modulo 2
 cifra cu valoarea cea mai mare: 2-1 = 1
 dacă rezultatul adunării a 2 cifre de rang “i” depăşeşte valoarea
1 → apare transport către rangul “i+1”, care se adaugă la suma
cifrelor de rang “i+1”
 transportul la cifra cea mai semnificativă indică depăşirea
capacităŃii de reprezentare a rezultatului

13.10.2010 Curs 2 ASDN 26


2.2. Aritmetica binară
OperaŃii aritmetice cu numere fără semn
 Adunarea binară

x y Transport Sumă
0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 0
 Exemplu:
2210 = 101102 +
1910 = 100112
4110 = 1010012
13.10.2010 Curs 2 ASDN 27
2.2. Aritmetica binară
OperaŃii aritmetice cu numere fără semn
 Scăderea binară

 2 cifre de rang “i”; poate să apară împrumut de la rangul


“i+1” x y Împrumut DiferenŃă
0 0 0 0
0 1 1 1
1 0 0 1
1 1 0 0
 Exemplu:
2210 = 101102 -
1910 = 100112
310 = 000112
13.10.2010 Curs 2 ASDN 28
2.2. Aritmetica binară

OperaŃii aritmetice cu numere fără semn


 ÎnmulŃirea binară

 prin adunarea repetată de produse parŃiale


 produsul este 1 doar dacă şi deînmulŃitul şi înmulŃitorul
sunt 1
x y Produsul
0 0 0
0 1 0
1 0 0
1 1 1

13.10.2010 Curs 2 ASDN 29


2.2. Aritmetica binară

OperaŃii aritmetice cu numere fără semn


 ÎnmulŃirea binară - exemplu:

1210 = 11002 x
610 = 01102
0000
1100
1100
0000
10010002 (64 + 8 = 7210)
13.10.2010 Curs 2 ASDN 30
2.2. Aritmetica binară
OperaŃii aritmetice cu numere fără semn
 ÎmpărŃirea binară

 nu se poate efectua dacă împărŃitorul este egal cu 0!!!


 trebuie să fie satisfăcută relaŃia:
X=Q•Y+R
 X = deîmpărŃit; Y = împărŃitor; Q = cât; R = rest
 se fac scăderi ale împărŃitorului din resturile parŃiale
 dacă restul parŃial este:
 mai mare ca împărŃitorul ⇒ cifra câtului este 1
 dacă restul parŃial este mai mic decât împărŃitorul ⇒ cifra câtului este 0
13.10.2010 Curs 2 ASDN 31
2.2. Aritmetica binară
OperaŃii aritmetice cu numere fără semn
 ÎmpărŃirea binară - exemplu

14710 = 100100112 ; 1110 = 10112


10010011 : 1011 = 11012 cât = 1310
1011
1110
1011
1111
1011
13.10.2010
1002 Curs 2 ASDN
rest = 410 32
2.2. Aritmetica binară
OperaŃii aritmetice cu numere în virgulă fixă
 Adunarea numerelor reprezentate în
complement faŃă de 2
 se adună numerele bit cu bit, inclusiv biŃii de semn
 se ignoră transportul de la biŃii de semn
 dacă rezultatul e negativ apare ca un număr reprezentat în
complement faŃă de 2
 ObservaŃii:
 dacă rezultatul în valoare absolută este mai mare decât valoarea
maximă care poate fi reprezentată ⇒ depăşire
 la adunarea a 2 numere de acelaşi semn apare depăşire dacă şi
numai dacă rezultatul are semn contrar semnelor numerelor
13.10.2010 Curs 2 ASDN 33
2.2. Aritmetica binară
OperaŃii aritmetice cu numere în virgulă fixă
 Adunarea numerelor reprezentate în complement

faŃă de 2 - exemple
+ 910 0 10012 + 910 0 10012
+ 510 0 01012 + 1110 0 10112
+1410 0 11102 + 2010 1 01002 rezultat incorect
- 910 1 01112 - 910 1 01112
- 510 1 10112 - 1110 1 01012
- 1410 11 00102 - 2010 10 11002 rezultat incorect
+ 710 0 01112 - 710 1 10012
- 410 1 11002 + 410 0 01002
+ 310 10 00112 - 310 1 11012
13.10.2010 Curs 2 ASDN 34
2.2. Aritmetica binară
OperaŃii aritmetice cu numere în virgulă fixă
 Scăderea numerelor reprezentate în complement

faŃă de 2
 se poate executa prin 2 metode:
 prin scădere directă, dacă se dispune de scăzătoare elementare
 prin adunarea complementului faŃă de 2 a scăzătorului, dacă se
dispune de sumatoare elementare
 pot să apară depăşiri, care trebuie detectate
 la scăderea unor numere de semne contrare pot să apară

depăşiri dacă şi numai dacă rezultatul are acelaşi semn cu


scăzătorul
13.10.2010 Curs 2 ASDN 35
2.2. Aritmetica binară
OperaŃii aritmetice cu numere în virgulă fixă
 Scăderea numerelor reprezentate în complement faŃă

de 2 - exemplu pentru metoda cu adunare cu


complementul faŃă de 2 al scăzătorului
D: + 710 0 01112
S: - 410 1 11002
S: - (- 4)10 0 01002 complement faŃă de 2
Atunci:
D: + 710 0 01112
S: + 410 0 01002
+1110 0 10112
13.10.2010 Curs 2 ASDN 36

S-ar putea să vă placă și