Sunteți pe pagina 1din 15

Cap.1.

BAZELE ARITMETICE ALE CALCULATOARELOR


Spre deosebire de calculatoarele analogice care opereaz cu mrimi
continue calculatoarele numerice (digitale) au fost concepute s opereze asupra
numerelor. Numerele permit o evaluare cantitativ a lumii nconjurtoare. Prin
operaia de numrare se asociaz fiecrei mulimi de obiecte un numr care
reprezint astfel cantitatea de obiecte care formeaz respectiva mulime. In
aproape toate civilizaiile umane operaia de numrare a presupus mai nti
divizarea mulimii de obiecte n grupe mai mici, punndu-se astfel bazele
sistemului de numeraie. Deoarece la nceputurile civilizaiilor umane aprecierea
cantitativ a unei mulimi de obiecte se realiza prin compararea acesteia cu
numrul degetelor de la mni, se utilizeaz n prezent sistemul de numeraie
zecimal (cu baza zece). Exist ns indicii c au existat civilizaii care utilizau alte
baze, de exemplu baza 12.
Baza de numeraie ne indic deci mrimea grupei n care grupm obiectele
n scopul numrrii lor. In procesul de utilizare a calculatorului ntlnim sistemele
de numeraie cu baza 10, 8, 16, 2. Din punct de vedere matematic sistemele de
numeraie sunt echivalente. Dac operatorului uman i este foarte comod s
lucreze n sistemul zecimal, nu acelai lucru l putem spune despre un calculator.
Din motive de reprezentare a cifrelor, n tehnica de calcul se utilizeaz sistemul
de numeraie binar mbinat cu sistemul hexazecimal sau octal.
1.1. Sisteme de numeraie
Prin sistem de numeraie se nelege totalitatea regulilor de reprezentare ale
numerelor cu ajutorul simbolurilor denumite cifre.
Sistemele de numeraie pot fi poziionale sau nepoziionale. Un exemplu de
sistem poziional este sistemul zecimal, iar un sistem nepoziional este cel
roman. Intr-un sistem poziional, un numr N cu parte ntreag i parte fracionar,
separate prin virgul, se poate scrie sub oricare din urmtoarele forme:
(1.1)
N = an 1an 2 ...a1a0 , a1a2 ...a( m 1)am
N = an 1q n 1 + an 2q n 2 + ... + a1q 1 + a0 q 0 + a1q 1 + a2q 2 + ... + am q m (1.2)
sau
N=

n 1

ai q i

(1.3)

i =m

unde:

q este baza sistemului de numeraie (ntreg pozitiv);


a - reprezint cifre: 0 ai q , i = n 1, n 2,...,1,0,1,2,...,m ;
n este numrul de cifre ntregi ale numrului;

m este numrul de cifre fracionare ale numrului.


Intr-un sistem de numeraie, cifra este un simbol care reprezint o cantitate
ntreag. Numrul de simboluri permise pentru reprezentarea numerelor ntr-un
sistem de numeraie se numete baza sau rdcina sistemului de numeraie.
Cifrele a, reprezint coeficienii cu care se nmulesc puterile q i ale bazei q n
dezvoltarea polinomial a numrului pentru obinerea valorii sale.

Cifra an 1 , din relaiile (1.1) i (1.2) este cifra cea mai semnificativ
(c.m.s.) a numrului, iar cifra am este cifra cea mai puin semnificativ
(c.m.p.s.). In cazul sistemului de numeraie binar, pentru cifra binar se
folosete prescurtarea de bit. Dac m = 0, numrul N este ntreg. Dac n = 0,
numrul N este fracionar i subunitar. Dac m i n sunt ntregi i diferii de
zero, numrul N este mixt.
Exemple

263,2710 = 2 10 2 + 6 101 + 3 100 + 2 101 + 7 102


1110001,01 = 1 26 + 1 25 + 1 24 + 1 20 + 1 22
Relaia (1.2) explic motivul pentru care astfel de sisteme de numeraie
sunt denumite poziionale. Fiecare cifr a contribuie la valoarea numrului
respectiv cu o pondere dat de puterea i a bazei q.
Pentru un sistem de numeraie n baza q trebuie s existe q simboluri. La
sistemele de numeraie cu baza q > 10 se introduc simboluri noi. De exemplu,
pentru sistemul hexazecimal se introduc literele de la A la F. Reprezentarea
primelor 16 numere n sistemul zecimal, binar i hexazecimal este dat n
tabelul 1.1.
Tabelul 1.1. Echivalena cifrelor n sistemul zecimal, binar i
hexazecimal.
q = 10

0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

q=2

q = 16

0
1
10
11
100
101
110
111
1000
1001
1010
1011
1100
1101
1110
1111

0
l
2
3
4
5
6
7
8
9
A
B
C
D
E
F

1.2. Conversia bazei de numeraie


Pentru a deduce o metod sistematic de conversie a unui numr din
baza p n baza q , se utilizeaz rezultatul cunoscut c, dac N i q sunt
numere ntregi, exist ntotdeauna un singur ntreg r (care nu este negativ)
mai mic dect q i un singur ntreg C, astfel nct:
N
r
(1.4)
=C + , 0 r < q
q
q

1.2.1. Conversia numerelor ntregi


Aplicm relaia (1.4) la conversia unui numr ntreg Np din baza p n
echivalentul su n baza q, adic Nq. Trebuie s determinm valorile ntregi
nenegative a0 , a1,..., an 1, fiecare mai mic dect q, astfel ca:
(1.5)
N p = an-1q n -1 + ... + a2q 2 + a1q 1 + a0 q 0
In relaia de mai sus cunoatem numrul n vechea baz N p , noua baz
q i trebuie s aflm cifrele numrului din noua baz a0 , a1,..., an 1 .
Prin mprire cu numrul q obinem:
Np
a
a
(1.6)
= an -1q n -2 + ... + a2q 1 + a1q 0 + 0 = C0 + 0
q
q
q
a
unde C0 este partea ntreag, iar 0 este partea fracionar, deci a0 este
q
restul mpririi ntregi al numrului N p la q .

mprind ctul C0 la q i utiliznd rezultatele de mai sus, obinem:


C0
a
a
= an -1q n -3 + ... + a2q 0 + 1 = C1 + 1
q
q
q

(1.7)

unde a1 reprezint acum restul mpririi ntregi dintre C0 i q .


Operaia se continu pn cnd se obine un ct egal cu zero.
Algoritmul de conversie a numerelor ntregi este deci urmtorul:
1. Se mparte numrul iniial N p (n baza p) la noua baz q. Se obine ctul
C0 i restul a0 .
2. Se mparte ctul C0 la q. Se obine ctul C1 i restul a1 .
3. Se continu algoritmul pn cnd se obine ctul Cn = 0 . Resturile
obinute reprezint cifrele numrului convertit, a0 fiind cifra c.m.p.s.
Exemple
1. Conversia din zecimal n binar. S considerm numrul 137. Acesta
trebuie mprit la 2 i punem n eviden resturile mpririi ntregi dintre 137
i 2.
137 : 2 a0 = 1
68 : 2 a1 = 0
34 : 2 a2 = 0
17 : 2 a3 = 1
8 : 2 a4 = 0
4 : 2 a5 = 0
2 : 2 a6 = 0
1 : 2 a7 = 1
0

S-a obinut:

13710 = 100010012
2. Conversia din zecimal n octal (baza 8).
137 : 8 a0 = 1
17 : 8 a1 = 1
2 : 8 a2 = 2
0

deci: 13710 = 2118


3. Conversia din zecimal n hexazecimal (baza 16).
137 : 16 a0 = 9
8 : 16 a1 = 8
0

deci: 13710 = 8916


1.2.2. Conversia numerelor fracionare
Pentru
conversia
numerelor
fracionare
subunitare
trebuie
determinai coeficienii ntregi nenegativi a-1, a-2 ,..., a-m . Considerm numrul
fracionar N p din baza p care, n noua baz q , are urmtoarea reprezentare:
N p = a-1q -1 + a-2q -2 + a-3 q -3 + ... + a-mq -m

(1.8)

unde a1, a2 , ..., am sunt cifrele numrului reprezentat n noua baz.


Prin nmulire cu baza q obinem:
(1.9)
qN p = a1 + a2q 1 + a3 q 2 + ... + am q m +1 = a1 + F1
unde a1 este partea ntreag, iar F1 este partea fracionar a valorii obinute.
nmulind partea fracionar F1 cu q obinem:
qF1 = a2 + a3 q 1 + ... + am q m + 2 = a2 + F2

(1.10)

Operaia se continu pn cnd se obine o parte fracionar egal cu


zero sau se ajunge la precizia cerut.
Algoritmul de conversie al numerelor fracionare este deci urmtorul:
1. Se nmulete numrul iniial Np (n baza p ) cu noua baz q. Se obine
partea fracionar F1 i partea ntreag a1 .
2. Se nmulete partea fracionar F1 cu q. Se obine partea fracionar F2 i
partea ntreag a 2 .
3. Se continu algoritmul pn cnd se obine partea fracionar Fm = 0 sau
se ajunge la precizia cerut. Cifrele ntregi obinute reprezint cifrele
numrului n baza q, a1 fiind cifra c.m.s.
Exemple
1. Conversia din zecimal n binar.

0,438 2
0,876 2 a1 = 0

0,064 2 a 7 = 0

0,752 2 a 2 = 1

0,128 2 a 8 = 0

0,504 2 a 3 = 1

0,256 2 a 9 = 0

0,008 2 a 4 = 1

0,512 2 a10 = 0

0,016 2 a 5 = 0

0,024 a11 = 1

0,032 2 a 6 = 0

Deci 0,43810 = (0,0111000000 1...) 2


Operaia se continu fr a se putea ajunge la Fm = 0 . Deci, un numr
fracionar finit ntr-un sistem de numeraie nu poate fi reprezentat ntotdeauna
printr-un numr finit ntr-un alt sistem de numeraie.
2) Conversie din zecimal n octal
0,438 8
0,504 8 a1 = 3
0,032 8 a 2 = 4
0,256 8 a 3 = 0
0,048 8 a 4 = 2
Rezult 0,43810 = (0,3402...) 8
3) Conversie din zecimal n hexazecimal
0,438 16

0,008 16 a1 = 7
0,128 16 a 2 = 0
0,048 16 a 3 = 2
0,768 16 a 4 = 0
0,288 a 5 = 12 C
Numrul rezultat este 0,43810 = (0,7020C...)16
Pentru numere fracionare mai mari dect 1, partea ntreag i cea
fracionar se calculeaz separat.

Conversia prin codificare


In cazul particular n care baza final q este o putere ntreag a bazei iniiale
p:
q = pr , r Z
conversia se poate reliza printr-un procedeu mai simplu, deoarece unei cifre n
baza q i corespund r cifre n baza p. Numrul n baza p se partiioneaz n
grupe de cte r cifre i se nlocuiete fiecare grup de la dreapta i de la stnga
virgulei cu echivalentul su n baza q . In tabelul 1.2 sunt prezentate codurile
binare ale cifrelor sistemelor hexazecimal i octal.

Tabelul 1.2
q = 16

0
l
2
3
4
5
6
7
8
9
A
B
C
D
E
F

Cod
binar

0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111

q=8

0
1
2
3
4
5
6
7

Cod
binar

000
001
010
011
100
101
110
111

Aceast proprietate o au bazele 2 i 8 i bazele 2 i 16. Astfel, conversia din


binar n octal se poate efectua prin nlocuirea fiecrui grup de 3 cifre binare
prin echivalentul su octal, iar conversia din binar in hexazecimal se poate
efectua prin nlocuirea fiecrui grup de 4 cifre binare prin echivalentul su
hexazecimal. Dac ultima grup de cifre binare de la stnga sau de la dreapta
virgulei nu este complet, se adaug zerouri la stnga, respectiv la dreapta,
pn la completarea grupei.
Exemple
11100,11012 = 011 100,110 100 2 = 34,64 8
10100011,012 = 1010 0011, 0100 2 = A3,416
Pentru conversia din q n p se nlocuiete fiecare cifr a numrului din
baza q cu cele r cifre ale echivalentului (codului) din baza p .
Astfel, conversia din octal n binar i cea din hexazecimal n binar se
efectueaz prin nlocuirea cifrelor octale, respectiv hexazecimale, printr-un
grup de 3, respectiv 4 cifre binare, care reprezint codurile binare ale cifrelor.
Exemple

123,48 = 001 010 011, 100 2 = 1010011,12

53, B16 = 0101 0011,10112 = 1010011,10112

Conversia din octal n hexazecimal i din hexazecimal n octal se poate


efectua dup ce s-a efectuat conversia n binar.
Exemple
123,4 8 = 001 010 011,100 2 = 0 0101 0011,100 0 2 = 53,816
A7, E16 = 1010 0111,1110 2 = 010 100 111, 1112 = 247,7 8
1.2.3. Conversia binar-zecimal
Conversia unui numr binar ntreg n echivalentul su zecimal se poate
efectua prin metoda nmulirii repetate cu 2, preciznd faptul c operaia se

efectueaz n sistemul zecimal. Pentru cazul general se consider numrul N


din baza q:
N = an 1q n 1 + an 2q n 2 + ... + a1q 1 + a0 q 0

(1.11)

Care, dup factorizare, poate fi scris sub forma


(1.12)
N = (...((an 1q + an 2 )q + an 3 )q + ... + a1 )q + a0
Pentru q = 2 rezult urmtorul algoritm:
1. Se nmulete cifra c.m.s. (cea mai semnificativ de ordinul cel mai
mare) a numrului binar cu 2 i se adun la rezultat urmtoarea cifr
semnificativ.
2. Se nmulete rezultatul cu 2 i se adun urmtoarea cifr semnificativ.
3. Se continu pn cnd s-a prelucrat i cifra c.mp.s. a numrului binar.
Rezultatul obinut este echivalentul zecimal al numrului binar dat.
Exemplu
10111 = (((1 x 2 + 0) 2 + 1) x 2 + 1) x 2 +1
Efectund calculele din fiecare parantez se obine
101112 1 2 + 0 = 2
2 2 +1= 5
5 2 + 1 = 11
11 2 + 1 = 23
deci 101112 = 2310
Numerele fracionare (subunitare) a cror form general este
(1.13)
N = a1q 1 + a2q 2 + ... + am q m
pot fi factorizare n modul urmtor:
1
1
1
1
(1.14)
N = a1 + a2 + ... + am +1 + am ...
q
q
q
q
Pentru q = 2 rezult urmtorul algoritm:
1. Se mparte cifra c.m.p.s. a numrului binar cu 2 i se adun urmtoarea cifr
semnificativ.
2. Se mparte rezultatul cu 2 i se adun urmtoarea cifr semnificativ.
3. Se continu pn cnd se efectueaz mprirea care corespunde cifrei
c.m.s. a numrului fracionar.
Exemplu
0,10112 1/ 2 + 1 = 1,5
1.5 / 2 + 0 = 0,75
0,75 / 2 + 1 = 1,375
1,375 / 2 = 0,6875
Deci 0,10112 = 0,6875 10
In calculul manual, operaiile de conversie a numerelor binare n zecimal se
realizeaz mai simplu prin adunarea puterilor bazei 2.
Exemple
101112 = 1 2 4 + 0 2 3 + 1 2 2 + 1 21 + 1 2 0 = 16 + 0 + 4 + 2 + 1 = 2310
0,10112 = 1 2 1 + 0 2 2 + 1 2 3 + 1 2 4 = 0,5 + 0 + 0,125 + 0,0625 =
= 0,6875 10
In mod identic se poate proceda pentru conversia unui numr din

hexazecimal n zecimal.
1A816 = 1 16 2 + 10 161 + 8 16 0 = 256 + 160 + 8 = 42410
1.3. Operaii aritmetice cu numere fr semn
1.3.1. Adunarea
Adunarea a dou cifre n baza q este o operaie modulo q, deci cifra cu
valoarea cea mai mare va fi q 1 (de exemplu, 9 n zecimal, 1 n binar, F n
hexazecimal). Dac rezultatul adunrii a dou cifre de rang i depete aceast
valoare, va apare un transport ctre rangul i + 1, care se va aduna la suma cifrelor
de rang i + 1. Apariia unui transport de la cifra c.m.s. indic o depire a capacitii
de reprezentare a rezultatului.
In cazul adunrii binare, cifra sumei este 1 dac unul din termenii adunrii este
1. Cifra de transport este 1 numai dac ambii termeni ai adunrii sunt 1. In tabelul
1.3 se prezint regula de adunare a dou cifre binare x i y .
Tabelul 1.3. Adunarea a dou cifre binare.
x
0
0
1
1

y
0
1
0
1

Transportul
0
0
0
1

Suma
0
1
1
0

Exemple
3210 +
2910
6110

10110 +
10011
101001
6B3216 +
4DF116
B92316

1.3.2. Scderea
La scderea a dou cifre de rang i , dac cifra desczutului este mai mic
dect cifra scztorului, apare un mprumut de la rangul i + 1.
Tabelul 1.3. Scderea a dou cifre binare.
x
0
0
1
1

y
0
1
0
1

Imprumutul
0
1
0
0

Diferena
0
1
1
0

In cazul scderii binare, diferena este 1 dac fie desczutul, fie scztorul
este 1. Imprumutul apare numai dac desczutul este 0 i scztorul este 1. In
tabelul 1.3 se prezint regula de scdere a dou cifre binare x i y .
Exemple
3210
1910
1310
10110 2

100112
000112
6B3216

4DF116

1D 4116

1.3.3. nmulirea
nmulirea se efectueaz de obicei prin adunarea repetat a unor produse
pariale. La nmulirea a dou cifre binare, produsul este 1 numai dac denmulitul
i nmulitorul sunt 1. In tabelul 1.4 se prezint regula de nmulire a dou cifre
binare x i y .
Tabelul 1.4. Inmulirea a dou cifre binare.
x
0
0
1
1

y
Produsul
0
0
1
0
0
0
1
1
Exemplu
1100
0110
0000
1100
1100
0000
1001000

1.3.4. Imprirea
Imprirea a dou numere nu se poate efectua dac mpritorul este egal
cu zero. Fiind dat dempritul x i mpritorul y , pentru operaia de mprire
trebuie s se determine ctul Q i restul R , astfel nct s fie satisfcut relaia:
X =Qy +R
La mprirea n zecimal se determin cifrele ctului prin alegerea unei cifre i
scderea din restul parial (care este iniial o parte a dempritului) a produsului
dintre aceast cifr i mpritor. Dac rezultatul scderii este un numr pozitiv mai

mic dect mpritorul, cifra aleas este corect. In caz contrar, se alege o alt cifr
i operaia se repet. In fiecare etap a operaiei se obine o cifr a ctului.
In cazul mpririi binare, dac se alege n mod eronat o cifr a ctului, o nou
alegere nu mai este necesar, existnd numai dou cifre. Operaia de mprire se
va reduce la o serie de scderi ale mpritorului din restul parial, care se efectueaz
numai dac restul parial este mai mare dect mpritorul, caz n care cifra ctului
este 1; n caz contrar, cifra corespunztoare a ctului este 0.
Exemplu
10010011 : 1011 = 01101
1011
1110
Rest parial
1011
1111
Rest parial
1011
100
Rest
1.4 Funcii Booleene
O variabil care poate lua doar valorile 0 i 1 este denumit variabil binar
Funcie de forma y=f( x1 , x2 ) n care variabilele x1 i x2 sunt variabile binare se
numete funcie boolean. Dintre funciile booleene, cele mai des ntlnite sunt
urmtoarele:
y = x1 .x2 = x1 x2 reprezint funcia AND
y = x1 + x2 reprezint funcia OR
y = x reprezint funcia NOT
y = x1 x2 + x1 x2 = x1 x2 se numete XOR (sau exclusiv)
In continuare se prezint tabelele de adevr ale acestor funcii:
AND

XOR

OR

x1

x2

x1

x2

x1

x2

0
1
0
1

0
0
1
1

0
0
0
1

0
1
0
1

0
0
1
1

0
1
1
1

0
1
0
1

0
0
1
1

0
1
1
0

1.5. Reprezentarea numerelor n calculator


In funcie de soluia aleas pentru a indica semnul numerelor sau poziia
virgulei, exist mai multe moduri de reprezentare a numerelor n calculator.
Numerele reprezentate n calculator pot fi fr semn sau cu semn.
Numerele fr semn sunt reprezentate n binar sau ntr-un cod binar zecimal. In
cazul numerelor cu semn, se utilizeaz o cifr de semn pentru indicarea
semnului. Convenional, se atribuie cifra 0 pentru semnul plus i cifra 1 pentru
semnul minus. Cifra de semn este reprezentat pe poziia c.m.s. a numrului.
Pentru reprezentarea unui numr binar cu semn de n cifre binare, sunt necesare
deci n + 1 poziii.
In general, un numr are o parte ntreag i o parte fracionar, separate

prin virgula binar. Virgula nu se reprezint fizic, dar trebuie cunoscut localizarea
ei. Dup modul de amplasare a virgulei binare, exist dou forme de reprezentare a
numerelor:
Forma cu virgul fix;
Forma cu virgul mobil.
In forma cu virgul fix, virgula care separ partea ntreag de cea
fracionar este aezat ntr-o poziie bine definit a cuvntului binar. Exist dou
posibiliti de poziionare. Dac virgula este aezat dup cifra de semn, se
opereaz cu numere fracionare, subunitare. Dac virgula este aezat dup
cifra c.m.p.s., se opereaz cu numere ntregi. In continuare se presupune ultima
poziionare, considernd c se lucreaz cu numere ntregi.
In forma cu virgul mobil, fiecare numr este caracterizat prin dou valori:
Mantisa, care indic mrimea exact a numrului ntr-un anumit domeniu;
Exponentul, care indic ordinul de mrime a numrului, fiind puterea la care
se ridic baza mantisei. Exponentul indic deci implicit poziia virgulei
binare.
1.6. Reprezentarea numerelor n virgul fix
1.6.1. Reprezentarea numerelor cu semn
In continuare vom nota cu x , y numerele n reprezentarea binar obinuit,
la care se ataeaz semnul. Un numr cu n cifre se va scrie sub forma:
n 1

x = x n 1x n 2 ...x1x 0 = x i 2i
i =0

De exemplu

10110111

Vom nota cu X i Y numerele exprimate n forma de reprezentare n


calculator. Dup modul de exprimare a numerelor negative, exist trei forme
uzuale de reprezentare a numerelor cu semn n virgul fix:
n mrime i semn (MS);
n complement fa de 1 (C1);
n complement fa de 2 (C2).
Pentru toate formele de reprezentare, un numr pozitiv x se exprim n
acelai fel:
X = 0 2n +

n 1

x i 2i

= 0 2n + x

(1.15)

i =0

Numrul pozitiv cu semn se reprezint deci adugnd cifra 0 , de semn, n


faa numrului fr semn:
X = 0 x n 1x n 2 ...x1x 0
Considerm pentru simplitate numere reprezentate pe 4 bii i un bit de semn.
De exemplu, numrul fr semn 6 se reprezint prin:

6 0110

iar numrul cu semn + 6 prin:

+ 6 0 0110

Reprezentarea numerelor negative depinde de modul de reprezentare


ale acestora.
1. In form de reprezentare denumit n mrime i semn (MS ) , un numr
negativ x va avea urmtoarea expresie:

X = 1 2n +

n 1

x i 2i

= 1 2n + x

(1.16)

i =0

Deci, numrul negativ se reprezint prin adugarea cifrei 1, de semn, n faa


numrului fr semn:
X = 1x n 1x n 2 ...x1x 0
De exemplu numrul 6 va fi reprezentat prin:

6 1 0110

Acest mod de reprezentate are mai multe dezavantaje. Un prim


dezavantaj este faptul c operaiile de adunare i scdere necesit circuite
mai electronice mai complexe. Al doilea dezavantaj const n faptul c exist
dou reprezentri distincte pentru cifra 0 :

+ 0 0 0000
0 1 0000

In aceste condiii este mai dificil s se verifice dac o valoare este egal
cu 0 .

2. In cazul reprezentrii n complement fa de 1 (C1) , un numr negativ se


reprezint prin complementul fa de 1 al numrului pozitiv cu aceeai valoare
absolut. Complementul fa de 1 al unui numr binar se obine prin nlocuirea
biilor de 1 cu 0, i a celor de 0 cu 1. Un numr negativ x reprezentat n
complement fa de 1 are expresia:
X = 1 2n +

n 1

x i 2i

(1.17)

i =0

unde x i = 1 x reprezint complementul fat de 1 al cifrei x i .


Reprezentarea unui numr negativ se obine prin complementarea
tuturor cifrelor numrului fr semn i adugarea cifrei de semn 1:
_

X = 1x n 1 x n 2 ... x 1 x 0
De exemplu

+ 6 0 0110
6 1 1001

Si n acest caz exist dou reprezentari distincte pentru cifra 0 :

+ 0 0 0000
0 1 1111

3. Un numr negativ x reprezentat n complement fa de 2 (C 2) are


urmtoarea expresie:
X = 1 2n +

n 1 _

x i 2i + 1 20 = 2n +1 x

(1.18)

i =0

Reprezentarea unui numr negativ se poate obine n mai multe moduri.


Una dintre posibiliti este utilizarea relaiei de definiie (1.18).
Operaia de scdere se efectueaz lund n considerare i bitul de
semn. De exemplu, considernd n = 4, reprezentarea numrului - 6 va fi:

100000
00110
11010
O alt posibilitate este obinerea complementului fa de 2 n dou

etape:
1. Se obine complementul fa de 1.
2. Se consider rezultatul ca un ntreg fr semn, la care se adun
valoarea 1.

De exemplu:

+ 6 00110
6(C1) 11001 +
1
----------

6(C 2) 11010

In mod practic, complementul fa de 2 al unui numr se poate


determina pornind de la numrul pozitiv cu semn, astfel:
1. Se scriu cifrele numrului ncepnd cu cifra c.m.p.s., neschimbate,
pn la primul 1 inclusiv.
2. Se complementeaz cifrele ntlnite n continuare.
In reprezentarea C2 exist o singur codificare pentru cifra 0 . In plus,
operaiile de adunare i scdere se efectueaz cel mai simplu n C2.
S determinm acum gama numerelor care pot fi exprimate n cele trei
forme de reprezentare.
Pentru toate cele trei forme numrul maxim pozitiv care poate fi
reprezentat pe n bii este
0 111...11 = 2n 1
In MS cel mai mare numr negativ care poate fi reprezentat este
1 111...11 = (2n 1)
In C1 numrul negativ maxim este
1 000...00
care corespunde numrului pozitiv
0 111...11 = 2n 1
Putem trage concluzia c gama numerelor care pot fi exprimate pe n bii
n MS i C1 este

(2 n 1) x 2 n 1
Numrul minim negativ care poate fi reprezentat n C2 este
1 000...00
Pentru a determina ct reprezint aceast valoare plecm de la cel mai
mare numr pozitiv
0 11111= 2n-1
Numrul negativ corespunztor este
1 00001= -(2n-1)=-2n+1
Pentru a ajunge la numrul cel mai mic care poate fi reprezentat n C2
trebuie s scdem din acest numr cifra 1
1 000..01-1=1 000...00=-2n+1-1=-2n
Deci gama numerelor ce pot fi exprimate n C2
2n x 2n 1
In tabelul 1.6 se prezint reprezentarea unor numere cu 4 bii i un bit de
semn n MS, C1 i C2.

Tabelul 1.6. Diferite moduri de reprezentare a unor numere cu semn.

x
+15
+14
...
+2
+1
0
-1
-2
...
-14
-15
-16

MS
0 1111
0 1110
...
0 0010
0 0001
0 0000
1 0000
1 0001
1 0010
...
1 1110
1 1111
-

C1
0 1111
0 1110
...
0 0010
0 0001
0 0000
1 1111
1 1110
1 1101
...
1 0001
1 0000
-

C2
0 1111
0 1110
...
0 0010
0 0001
0 0000
1 1111
1 1110
...
1 0010
1 0001
1 0000

1.6.2. Reguli de deplasare a numerelor cu semn


De multe ori, n regitrii procesorului, sunt necesare operaii de deplasare a
numerelor cu semn. Aceste deplasri trebuie efectuate astfel nct s se modifice
numai valoarea numerelor, nu i semnul. Deplasarea la stnga cu o poziie este
echivalent nmulirii cu 2, iar deplasarea la dreapta este echivalent mpririi cu
2 (nmulirii cu 2 1 ).
Pentru stabilirea regulilor de deplasare, se consider exemplele din tabelul
1.7.
Tabelul 1.7. Stabilirea regulilor de deplasare a numerelor cu semn.

X
X 2
X 2 1
X
X 2
X 2 1

+6
+12
+3
-6
-12
-3

MS
0 0110
0 1100
0 0011
1 0110
1 1100
1 0011

C1
0 0110
0 1100
0 0011
1 1001
1 0011
1 1100

C2
0 0110
0 1100
0 0011
1 1010
1 0100
1 1101

Dup cum rezult din tabelul anterior, nmulirea unui numr cu 2 are ca
efect deplasarea numrului spre stnga cu o poziie. mprirea unui numr cu 2
are ca efect deplasarea acestuia spre dreapta cu o poziie.
La deplasare particip numai cifrele numerelor. Din analizarea tabelului
rezult urmtoarele:
In cazul deplasrii numerelor pozitive, n poziiile rmase libere dup
deplasarea la stnga sau la dreapta se introduc cifre de 0.
La numerele negative reprezentate n MS, n poziiile rmase libere dup o
deplasare la stnga sau la dreapta se introduc cifre de 0.
La numerele negative reprezentate n C1, n poziiile rmase libere dup o

deplasare la stnga sau la dreapta se introduc cifre de 1.


La numerele negative reprezentate n C2, n poziiile rmase libere dup o
deplasare la stnga se introduc cifre de 0, iar dup o deplasare la dreapta
se introduc cifre de 1 (deci, se repet semnul numrului).

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