Sunteți pe pagina 1din 17

2.

Circuite logice
2.6. Numere negative.
Scăderea

Copyright Paul GASNER


Sumar
Sumatoarele concepute până acum operează cu numere
pozitive
Scăderea poate fi privită ca o adunare cu un număr
negativ
Există mai multe reprezentări pentru numerelor cu
semn
De interes sunt următoarele operaţii
conversia x la -x
suma a două numere cu semn

Copyright Paul GASNER 2


Reprezentarea cu semn
Se adaugă un bit de semn în faţa numerelor:
0 reprezintă numere pozitive
1 reprezintă numere negative
Exemple
11012 = 1310 (număr fără semn pe 4 biţi – unsigned number)
0 1101 = +1310 (număr pozitiv cu semn pe 5 biţi – signed number)
1 1101 = -1310 (număr negativ cu semn pe 5 biţi – signed number)

01002 = 410 (număr fără semn 4-bits – unsigned number)


0 0100 = +410 (număr pozitiv cu semn 5-bit – signed number)
1 0100 = -410 (număr negativ cu semn 5-bit – signed number)

Copyright Paul GASNER 3


Operaţii cu numere cu semn
Negativarea unui număr constă în simpla schimbare a
bitului de semn
Dacă operanzii au acelaşi semn, adunarea lor se
efectuează în maniera obişnuită
Dacă operanzii au semne diferite, atunci se efectuează
scăderea lor iar rezultatul are semnul numărului mai
mare (în valoare absolută)
dificil de implementat în circuite logice

5 13 17
+3 7 9+ 6 4 7-
- 6 4 7 deaorece 3 7 9
-2 6 8 2 6 8

Copyright Paul GASNER 4


Reprezentarea complement faţă de 1
Negativarea unui număr se obţine prin complementarea
fiecărui bit al numărului respectiv
Semnul este reprezentat printr-un bit amplasat în faţa
numărului
11012 = 1310 (număr fără semn pe 4 biţi – unsigned number)
0 1101 = +1310 (număr pozitiv cu semn pe 5 biţi complement faţă de 1)
1 0010 = -1310 (număr negativ cu semn pe 5 biţi complement faţă de 1)

01002 = 410 (număr fără semn 4-bits – unsigned number)


0 0100 = +410 (număr pozitiv cu semn 5-bit complement faţă de 1)
1 1011 = -410 (număr negativ cu semn 5-bit complement faţă de 1)

Copyright Paul GASNER 5


Complement faţă de 1
Complementarea unui număr pe 1 bit este echivalentă
cu scăderea acelui număr din 1:
0’ = 1 şi 1 - 0 = 1 1’ = 0 şi 1 - 1 = 0
Complementarea unui număr pe n biţi echivalează cu
scăderea acestuia din 2n-1
De exemplu, complementarea numărului pe 5 biţi
01101:
n=5 şi 2n-1 = 3110 = 111112
scăzând 01101 din 11111 rezultă 10010:
1 1 1 1 1-
01 1 01
1 00 1 0

Copyright Paul GASNER 6


Complement faţă de 1. Adunarea
Se parcurg următoarele etape:
se efectuează suma numerelor fără semn, inclusiv bitul de
semn
bitul de depăşire se adună la suma de la pasul precedent
0111 + (+7) + 0011 + (+3) +
1011 (-4) 0010 (+2)
1 0010 0 0101

0010 + 0101 +
1 0
0011 (+3) 0101 (+5)

Copyright Paul GASNER 7


Reprezentarea complement faţă de 2
Negativarea unui număr constă în complementarea
fiecărui bit şi apoi la numărul obţinut se adună 1
Exemple:

11012 = 1310 (număr fără semn pe 4 biţi – unsigned number)


0 1101 = +1310 (număr pozitiv cu semn pe 5 biţi complement faţă de 2)
1 0010 = -1310 (număr negativ cu semn pe 5 biţi complement faţă de 1)
1 0011 = -1310 (număr negativ cu semn pe 5 biţi complement faţă de 2)

01002 = 410 (număr fără semn 4-bits – unsigned number)


0 0100 = +410 (număr pozitiv cu semn 5-bit complement faţă de 2)
1 1011 = -410 (număr negativ cu semn 5-bit complement faţă de 1)
1 1100 = -410 (număr negativ cu semn 5-bit complement faţă de 2)

Copyright Paul GASNER 8


Complementul faţă de 2
Reprezentarea complement faţă de 2 este echivalentă cu
scăderea numărului pe n biţi din 2n:
1 00000 - 1 00000 -
0 1 1 0 1 (+1310) 0 0 1 0 0 (+410)
1 0 0 1 1 (-1310) 1 1 1 0 0 (-410)

complementarea tuturor biţilor din stânga bitului 1 cel mai


din dreapta:
01101= +1310 (număr pozitiv complement faţă de 2)
10011= -1310 (număr negativ complement faţă de 2)
00100= +410 (număr pozitiv complement faţă de 2)
11100= -410 (număr negativ complement faţă de 2)

Copyright Paul GASNER 9


Complementul faţă de 2. Adunarea
Adunarea în reprezentarea complement faţă de 2 este
mai simplă decât în celelalte prezentări, deşi obţinerea
numărului negativ e mai dificilă
Se adună numerele ca la reprezentarea fără semn şi se
ignoră bitul de depăşire (carry out)
Exemplu: 0111 + 1100 sau (+7) + (-4)
se efectuează adunarea 0111 + 1100 ca numere fără semn
01 1 1 +
1 1 00
1 001 1

se înlătură bitul de depăşire 1


rezultatul final este 0011 (+3)

Copyright Paul GASNER 10


Complementul faţă de 2. Adunarea
Adunarea a două numere negative: 1101 + 1110 sau
(-3) + (-2) în zecimal
1 1 01 +
1110
1 1 01 1

Rezultatul va fi 1011 (-5)


În general A - B= A + (-B)
n
= A + (2 - B)
= (A - B) + 2n
Dacă A≥B, atunci A-B>0 iar 2n reprezintă bitul de
depăşire 1; îndepărtarea sa conduce la rezultatul dorit
A-B
Dacă A<B, atunci A-B<0 şi rezultatul va fi 2n-(A-B),
adică reprezentarea în complement faţă de 2 a A-B
Copyright Paul GASNER 11
Comparaţii
Numerele pozitive arată la fel în
toate reprezentările Zecimal Semn Compl. 1 Compl. 2
7 0111 0111 0111
Numărul 0 are câte două notaţii 6 0110 0110 0110
în reprezentările cu semn şi 5
4
0101
0100
0101
0100
0101
0100
complement faţă de 1 3
2
0011
0010
0011
0010
0011
0010
Reprezentarea în complement 1
0
0001
0000
0001
0000
0001
0000
faţă de 2 este asimetrică (se -0 1000 1111 —
-1 1001 1110 1111
poate reprezenta -8 dar nu +8) -2 1010 1101 1110
-3 1011 1100 1101
Reprezentarea în complement -4 1100 1011 1100
-5 1101 1010 1011
faţă de 2 s-a impus datorită -6 1110 1001 1010
notării unice pentru 0 şi a -7
-8
1111

1000

1001
1000
simplităţii adunării

Copyright Paul GASNER 12


Domenii de valori
Un număr pe 4 biţi poate lua valori într-un domeniu
care diferă funcţie de reprezentare

complement complement
fără semn cu semn
faţă de 1 faţă de 2
minim 0000 (0) 1111 (-7) 1000 (-7) 1000 (-8)
maxim 1111 (15) 0111 (+7) 0111 (+7) 0111 (+7)

Domeniile de valori pentru un număr pe n biţi este


complement complement
fără semn cu semn
faţă de 1 faţă de 2
minim 0 -(2n-1-1) -(2n-1-1) -2n-1
maxim 2n-1 +(2n-1-1) +(2n-1-1) +(2n-1-1)

Copyright Paul GASNER 13


Circuit de scădere 2compl
Circuit care efectuează scăderea pentru numere pe 4 biţi
fiecare bit al lui B este negat
la sumă se adaugă 1 (la carry in)
Rezultatul este A+B'+1, unde B'+1 este complementul
faţă de 2 al lui B
A3, B3 şi S3 sunt bitul se semn

Copyright Paul GASNER 14


Circuit sumator-substractor
Trebuie avut în vedere că
X⊕0=X X ⊕ 1 = X’
Dacă Sub=0, B ajunge neschimbat pe sumatoare şi
CI=0, realizându-se suma A+B
Dacă Sub=1, B este complementat pe sumatoare şi
CI=1, obţinându-se A-B

Copyright Paul GASNER 15


Overflow
La numerele cu bit de semn nu se poate detecta
fenomenul overflow din bitul de depăşire
De exemplu, 4 + 5, or (-4) + (-5):
0 1 0 0 + (+4) 1 1 0 0 + (-4)
01 01 (+5) 1 01 1 (-5)
01 001 (-7) 1 01 1 1 (+7)

Nu se poate proceda ca la numerele fără semn prin


includerea CO pt a obţine un număr pe 5 biţi ((-4) +
(-5) = +23!)
Valoarea 0 sau 1 nu poate fi corelată cu depăşirea

Copyright Paul GASNER 16


Scăderea. Concluzii
Reprezentarea adecvată a numerelor negative duce la
simplificarea circuitelor de scădere
reprezentarea complement faţă de 2 permite obţinerea simplă
a unui substractor dintr-un sumator
se pot construi relativ simplu circuite care să realizeze
adunarea şi scăderea
Overflow nu mai are aceeaşi semnificaţie ca la
adunarea numerelor fără semn
Un număr pe m biţi poate fi scris pe n biţi, n>m, prin
repetarea la stânga a bitului de semn (nu prin adăugare
de zero-uri ca la numere fără semn sau în zecimal)

Copyright Paul GASNER 17

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