Sunteți pe pagina 1din 10

2 SISTEME DE NUMERAIE

2.1 Sisteme de numeraie poziionale


Toate calculele pe care le facem n viaa de zi cu zi sunt efectuate n sistemul de
numeraie zecimal, sau n baza 10. Ne-am obinuit cu acest sistem nc de la natere, natura
fiind cea care a avut rolul decisiv n aceast alegere. Ea a stabilit ca rezultat final al evoluiei
un optim de cinci degete la fiecare dintre cele dou mini ale omului. Acest sistem de
numeraie este un sistem poziional, pentru c orice numr este reprezentat printr-un ir de
cifre zecimale, adic cifrele de la 0 la 9, fiecare poziie a cifrei n numr avnd o anumit
pondere. Valoarea numrului este o sum ponderat a cifrelor din care este format numrul.
Exemplul 2.1
Numrul ntreg 1734 se scrie sub forma:
0 1 2 3
10 4 10 3 10 7 10 1 1734 + + + = ,
unde 1 este cifra miilor, 7 este cifra sutelor, 3 a zecilor, iar 4 a unitilor.
n mod asemntor se reprezint i numerele fracionare. Cifrele de la dreapta virgulei
vor avea ponderi corespunztoare, date de exponenii negativi ai puterilor lui 10.
Exemplul 2.2
Numrul 5837,412 se scrie sub forma:
3 2 1 0 1 2 3
10 2 10 1 10 4 10 7 10 3 10 8 10 5 412 , 5837

+ + + + + + = ,
unde 4 este cifra zecimilor, 1 a sutimilor i aa mai departe.
n cazul general, un numr oarecare scris n baza b sub forma:
m n n
x x x x x x x

... , ...
2 1 0 1 2 1
,
unde
{ } 1 ,..., 1 , 0 b x
i
, are ca valoare suma fiecrei cifre multiplicate cu puterea
.
20 2 SISTEME DE NUMERAIE
corespunztoare a bazei:

=
=
1 n
m i
i
i
b x D
Dac b = 2, atunci se obine reprezentarea binar a numrului. n sistemele numerice
toate numerele se reprezint n baza 2, deoarece semnalele disponibile au numai dou stri,
care sunt asociate cifrelor binare 0 i 1.
Exemplul 2.3
Valoarea n baza 10 a numrului 1101,001 scris n baza 2 este:
10
3 2 1 0 1 2 3
2
125 , 13 2 1 2 0 2 0 2 1 2 0 2 1 2 1 001 , 1101 = + + + + + + =

Dac virgula lipsete, atunci se presupune c ea se afl la dreapta cifrei de pondere
minim. Cifra din stnga reprezentrii binare a unui numr este cifra de pondere maxim, sau
bitul cel mai semnificativ (MSB - Most Significant Bit), iar cifra din dreapta este cifra de
pondere minim, sau bitul cel mai puin semnificativ (LSB - Least Significant Bit).
Exemplul 2.4
Valoarea n baza 10 a numrului ntreg 110100111 scris n baza 2 este:
10
0 1 2 3 4 5 6 7 8
2
423 2 1 2 1 2 1 2 0 2 0 2 1 2 0 2 1 2 1 110100111 = + + + + + + + + =
Poate c un neajuns al reprezentrii binare este numrul mare de bii folosit la scrierea
unui numr. Pentru o scriere sub o form mai compact se utilizeaz uneori reprezentarea
hexazecimal, sau n baza 16, i mai rar reprezentarea octal, sau n baza 8. Aceste baze
sunt puteri ale lui 2 i orice ir de 3 bii poate fi reprezentat n mod unic printr-o cifr octal
(de la 0 la 7), dup cum orice ir de 4 bii poate fi reprezentat printr-o cifr hexazecimal
(cifrele de la 0 la 9 i simbolurile literale de la A la F pentru suplinirea celor 6 cifre care nu au
echivalent zecimal).
Exemplul 2.5
Numrul binar 11101,1011101 se poate scrie sub una din formele:
8 2 2
564 , 35 100 110 101 101, 011 1011101 , 11101 = =
16 2 2
BA , D 1 10 10 1 101 101, 1 0001 1011101 , 11101 = =
Am vzut pn acum c anumite grupri convenabile de bii i substituia lor prin
cifrele unuia dintre sistemele de numeraie n baza 8 sau 16 permit conversia binar-octal sau
binar-hexazecimal i invers. Conversia n sistemul de numeraie zecimal se face prin sumarea
ponderat a cifrelor din care este format numrul. Cum se poate face ns conversia unui
numr din sistemul de numeraie zecimal ntr-un alt sistem de numeraie?
Un numr ntreg scris n baza b sub forma
0 1 2 1
... x x x x
n n
are valoarea:
( ) ( ) ( )

=

+ + + + + = =
1
0
0 1 2 2 1
... ...
n
i
n n
i
i
x b x b x b x b x b x D
2.1 Sisteme de numeraie poziionale 21
Observm acum c prin mprirea numrului D la baza b se obine un ct Q i un rest
0
x . Ctul obinut are acelai aspect cu formula iniial. Prin mprirea lui la b se obine un
nou ct Q i restul
1
x . Cu fiecare nou mprire se obine cte o cifr a numrului cutat.
Procedura se oprete atunci cnd ctul devine 0. Restul obinut este cifra cea mai semnificativ
din reprezentarea numrului n baza b, adic
1 n
x .
Exemplul 2.6
Pentru a afla reprezentarea binar a numrului zecimal 179, procedm astfel:
179 : 2 = 89 + 1 (LSB)
89 : 2 = 44 + 1
44 : 2 = 22 + 0
22 : 2 = 11 + 0
11 : 2 = 5 + 1
5 : 2 = 2 + 1
2 : 2 = 1 + 0
1 : 2 = 0 + 1 (MSB)
Aeznd n ordine cifrele obinute ca rest, rezult:
2 10
10110011 179 = .
Cum vom proceda ns dac numrul zecimal are i o parte fracionar? Atunci vom
separa partea ntreag de partea fracionar i vom face cele dou conversii separat. Observm
c partea fracionar a numrului se poate scrie sub forma:
m
m F
b x b x b x D

+ + + = ...
2
2
1
1
Prin multiplicarea cu b a membrilor ecuaiei de mai sus obinem:
1 1
2 1
...
+


+ + + =
m
m F
b x b x x D b
Se poate uor observa c partea ntreag a expresiei din membrul drept este
1
x . Prin scderea
acestei valori i o nou multiplicare cu b se obine coeficientul
2
x , ca parte ntreag a
expresiei rezultate n membrul drept:
( )
2 1
3 2 1
...
+


+ + + =
m
m F
b x b x x x D b b
Se continu aceste calcule att timp ct multiplicm cu b numere diferite de zero. Este posibil
ca n unele situaii s nu terminm niciodat i din acest motiv, un alt criteriu de .
oprire este precizia acceptat a reprezentrii.
Exemplul 2.7
Ne propunem s aflm reprezentarea binar a numrului zecimal 0,61:
0,61 2 = 1,22 1 (MSB)
0,22 2 = 0,44 0
0,44 2 = 0,88 0
0,88 2 = 1,76 1
0,76 2 = 1,52 1
0,52 2 = 1,04 1
0,04 2 = 0,08 0 i aa mai departe.
Dac ne oprim aici, obinem un rezultat aproximativ datorit trunchierii
2 10
... 1001110 , 0 61 , 0 .
22 2 SISTEME DE NUMERAIE
2.2 Operaii cu numere binare
Operaiile aritmetice cu numere reprezentate n baza 2 nu au, din punct de vedere
teoretic, caracteristici cu totul speciale. Folosind regulile de operare pe un singur bit i innd
seam de capacitatea de reprezentare a operanzilor, se pot face uor operaii cu numere ntregi
i pozitive.
Exemplul 2.8
Un exemplu de adunare zecimal i binar a operanzilor
10
173 i
10
42 :
173 + 1 0 1 0 1 1 0 1 +
42 0 0 1 0 1 0 1 0
1 1 0 1 0 1 1 1 215
1 1
Se adun cifrele de la dreapta la stnga, ncepnd cu cele mai puin semnificative i se ine
seam de transportul care apare cnd suma cifrelor depete baza de numeraie folosit.
Operaia de scdere se poate face asemntor. Pentru un sistem numeric este ns mult
mai convenabil s se utilizeze o operaie echivalent, numit adunarea cu complementul fa
de doi. Este mai uor de efectuat o adunare la care trebuie s inem seam de transport
(carry), dect o scdere la care trebuie s inem seam de mprumut (borrow) de la una din
cifrele de rang superior.
Complementul unui numr de n cifre scris n baza b, fa de numrul b, se obine prin
scderea numrului din
n
b . Dac notm numrul cu D, atunci complementul lui fa de b este
D b C
n
= . Operaia de scdere poate fi ns evitat dac scriem rezultatul sub forma
( ) ( ) 1 1 + = D b C
n
. Dac definim complementul unei cifre d sub forma d b c = 1 , atunci
expresia ( ) D b
n
1 se obine prin complementarea cifrelor lui D. Deci complementul
numrului D se poate obine prin complementarea separat a cifrelor numrului D i adunarea
cifrei 1, conform relaiei de mai sus.
Exemplul 2.9
Complementul fa de 10 al numrului 1849 este 1849 10
4
, adic 8151. Fr a
efectua scderea, observm c prin complementarea separat a cifrelor 1, 8, 4 i 9 se obin
cifrele 8, 1, 5 i respectiv 0. Rezultatul este 8150 + 1 = 8151.
Complementul fa de 2 al numrului
10
119 se calculeaz n felul urmtor:
2 10
01110111 119 = . Prin complementarea fiecrui bit din aceast reprezentare se obine
2
10001000 , iar prin adunarea lui 1 se obine
10 2
119 10001001 = .
Prin complementarea fa de doi se realizeaz, de fapt, schimbarea semnului unui
numr, indiferent de valoarea lui iniial. n reprezentarea binar a numrului
10
119 s-a
introdus pe poziia cea mai semnificativ un bit suplimentar, numit bit de semn, care este 0
pentru numere pozitive i 1 pentru cele negative.
2.2 Operaii cu numere binare 23
Pentru adunarea numerelor reprezentate n complement fa de doi se reprezint
operanzii pe un numr fixat de bii, bitul cel mai semnificativ este bitul de semn, iar eventualul
transport obinut prin adunare se ignor.
Exemplul 2.10
Folosim o reprezentare pe 8 bii, cu bitul cel mai semnificativ ca bit de semn. Numerele
ntregi care se pot astfel reprezenta sunt cuprinse n intervalul [-127, +127].
25 +
42
67
00011001 +
00101010
01000011
25 +
- 12
13
00011001 +
11110100
1 00001101
25 +
- 30
- 5
00011001 +
11100010
0 11111011
- 17 +
- 95
- 112
11101111 +
10100001
1 10010000
n toate aceste exemple nu s-a depit capacitatea de reprezentare de 8 bii.
O dificultate suplimentar apare la detectarea depirii capacitii de reprezentare.
Detectarea depirii (overflow) se face uor dac observm c ea apare atunci cnd operanzii
au acelai semn i rezultatul are semn contrar.
Exemplul 2.11
Folosim tot o reprezentare pe 8 bii, cu bitul cel mai semnificativ ca bit de semn.
Depirea apare pentru orice rezultat aflat n afara intervalului [-127, +127].
79 +
56
135
01001111 +
00111000
10000111
- 100 +
- 85
- 185
10011100 +
10101011
1 01000111
- 121
= + 71
=
Operaiile de nmulire sau mprire se pot face prin adunri sau scderi repetate. Dac
se folosete reprezentarea n complement fa de doi, trebuie s avem n vedere un numr
suficient de bii pentru reprezentarea operanzilor. Produsul a dou numere de i bii poate fi
reprezentat printr-un numr de cel mult 2i bii.
Exemplul 2.12
Produsul numerelor 11 i 13 este 11 13 = 143. Numerele binare s-au reprezentat fr
semn. Exemplul din dreapta ilustreaz produsul numerelor -5 i -3, reprezentate n
complement fa de doi. Operanzii sunt reprezentai pe 6 bii, iar produsul lor, fr semn, este
format din cei 6 bii mai puin semnificativi ai rezultatului nmulirii:
1011
1101
1011
0000
1011
1011
10001111 = 143
111011
111101
111000001111 = 15
111011
111011
111011
. . . . .
24 2 SISTEME DE NUMERAIE
Prin mprirea lui 29 la 5 se obine ctul 5 i restul 4:
11101 101
101 101
01001
101
100
Se observ c nmulirea unui ntreg pozitiv cu
i
2 se face prin deplasarea ntregii
configuraii binare cu i poziii spre stnga i introducnd bitul 0 pe cele i poziii mai puin
semnificative rmase. Pentru mprirea cu
i
2 se face deplasarea spre dreapta cu i poziii.
2.3 Alte reprezentri binare
n afar de reprezentarea n complement fa de doi, numerele ntregi se mai pot
reprezenta prin mrime i semn. Pe poziia cea mai semnificativ a reprezentrii se adaug
bitul de semn, care prin convenie este 0 pentru numerele pozitive i 1 pentru cele negative, iar
biii urmtori sunt cei rezultai din conversia numrului fr semn din zecimal n binar.
Exemplul 2.13
Reprezentarea numerelor 153 i -153 prin mrime i semn este urmtoarea:
+153 = 010011001 -153 = 110011001
La fel ca n reprezentarea prin complement fa de doi, semnul numrului este dat de valoarea
celui mai semnificativ bit. Totui aceast reprezentare este mai comod pentru noi, deoarece
numrul i semnul sunt reprezentate prin dou cmpuri separate.
Exist unele aplicaii n care se prefer afiarea rezultatelor unor operaii binare prin
cifre zecimale, mai uor de interpretat pentru operatorul uman (calculatoare de buzunar). Cele
10 cifre zecimale de la 0 la 9 se nlocuiesc prin numerele binare corespondente, de la 0000 la
1001, rezultate prin conversia lor n binar fr semn. Celelalte 6 combinaii binare care pot fi
generate cu 4 bii, de la 1010 la 1111, nu sunt folosite. Aceast codificare este cunoscut sub
numele de cod BCD (Binary-Coded Decimal), sau cod zecimal codificat binar. Se poate
observa c numrul de bii n reprezentarea BCD este mai mare dect cel folosit n
reprezentarea binar.
Exemplul 2.14
Reprezentarea n cod BCD a numrului 153 se face pe 12 bii:
0001 0101 0011
Reprezentarea binar-zecimal cu exces trei este o form particular de reprezentare
BCD, n care fiecare digit este reprezentat prin forma binar a valorii sale sumate cu 3.
2.3 Alte reprezentri binare 25
Exemplul 2.15
Forma binar-zecimal cu exces trei a numrului 153 este urmtoarea:
0100 1000 0110
Reprezentarea cu exces trei permite calcularea simpl a complementului fa de 9,
foarte util n realizarea operaiilor aritmetice. Complementul fa de 9 al unui numr n exces
trei se obine prin complementarea bit cu bit (complementul fa de unu).
Exemplul 2.16
Complementul fa de 9 al unui numr zecimal este complementul fa de 10 din care se
scade o unitate. Complementul numrului 153 n exces trei este:
1011 0111 1001,
care reprezint, ntr-adevr, numrul 846.
Reprezentarea 1 prin m presupune reprezentarea a m numere, fiecare numr avnd un
cod binar pe m bii. Un singur bit are valoarea 1, toi ceilali m - 1 bii fiind 0. Diferena dintre
numere este dat de poziia bitului de valoare 1 n secvena celor m bii.
Exemplul 2.17
Patru stri ale unui sistem numeric pot fi codificate folosind codul 1 prin 4.
Reprezentarea binar a strilor este: 1000, 0100, 0010 i 0001.
Aceast codificare binar a strilor poate fi deosebit de util pentru sinteza unor
structuri numerice iterative (adic structuri care se repet de mai multe ori ntr-un sistem).
Trecerea de la un numr binar la altul imediat urmtor se poate face prin modificarea
unui numr mai mare sau mai mic de bii. Astfel, de la 2 la 3 comut un singur bit (0010
0011), dar de la 7 la 8 comut patru bii (0111 1000). Exist situaii n care este util o
reprezentare binar n care tranziia ntre numere succesive s fie fcut cu un numr minim de
comutri de bii. Reprezentarea numerelor binare n cod Gray aloc numerelor succesive
coduri care difer printr-un singur bit. Se spune c ntr-o secven de numrare Gray codurile
sunt adiacente.
Exemplul 2.18
Conversia din cod binar n cod Gray, ntr-o reprezentare pe 3 bii, este dat de
corespondenele urmtoare:
000 000 100 110
001 001 101 111
010 011 110 101
011 010 111 100
26 2 SISTEME DE NUMERAIE
Regula de generare a codului Gray este foarte simpl: bitul de rang i din reprezentarea
n cod Gray este 0 dac biii de rang i i i+1 din reprezentarea binar corespondent sunt egali;
n caz contrar, bitul respectiv are valoarea logic 1. Bitul de la stnga celui mai semnificativ bit
din reprezentarea binar este considerat 0.
Reprezentarea n virgul mobil se face pentru aproximarea numerelor reale. O
reprezentare cu mare precizie a unui numr real presupune utilizarea unui numr foarte mare
de cifre binare. Pentru a evita acest lucru, numerele se scriu sub forma:
E
M N 2 , 0 = ,
unde M i E sunt configuraii binare. Mrimea subunitar 0,M se numete mantisa
numrului, iar E este un ntreg care reprezint exponentul acestuia. Pentru semnul
numrului se folosete un bit separat.
Exemplul 2.19
Pentru M = 11001 i E = 100 numrul reprezentat este 12,5. Observm c:
1 , 1100 2 11001 , 0
100
=
Refacei calculul zecimal pentru operaia 0,78125 2
4
i obinei acelai rezultat. Se observ i
aici c nmulirea numrului de 4 ori cu 2 s-a fcut prin deplasarea virgulei spre dreapta cu 4
poziii.
Aceast reprezentare poate fi folosit n egal msur pentru numere foarte mari i
pentru numere foarte mici, datorit exponentului E. Ea asigur o precizie relativ dat de
numrul de bii cu care este reprezentat mantisa M.
Reprezentarea n virgul mobil a fost standardizat (IEEE Standard 754).
Standardul precizeaz dimensiunea mantisei, a exponentului, modul de codificare i poziia
relativ n reprezentare. Formatul simplu al standardului prevede o codificare pe 32 bii:
primul bit de pe poziia cea mai semnificativ este bitul de semn, urmtorii 8 bii reprezint
exponentul n exces 127, iar ceilali 23 bii rmai reprezint cei 23 bii mai puin
semnificativi ai mantisei. Bitul cel mai semnificativ al mantisei este ntotdeauna 1 i din
acest motiv el lipsete din formatul reprezentrii.
Exemplul 2.20
Cuvntul de 32 bii de mai jos reprezint conform standardului IEEE 754 un numr n
virgul mobil:
0 10001100 00110010000000000000000
Numrul este pozitiv, exponentul este 140 - 127 = 13, iar mantisa se scrie pe 24 bii:
100110010000000000000000. Prin mutarea virgulei cu 13 poziii spre dreapta se obine
1001100100000, adic reprezentarea binar a numrului 4896.
Standardul prevede i un format dublu care folosete o reprezentare pe 64 bii.
Probleme 27
Probleme
2.1 Realizai conversia n baza 10 a urmtoarelor numere: 1101011
2
; 174003
8
; 1201
3
;
63,52
8
; AB3D
16
; C79,FE
16
.
2.2 Realizai conversia n baza 8 a urmtoarelor numere zecimale: 16 ; 365 ; 3489 ; 97,12.
2.3 Realizai conversia n baza 16 a urmtoarelor numere zecimale: 61453 ; 23851 ; 5719;
23,25; 574,32 .
2.4 Realizai conversia n baza 2 a numerelor zecimale 2,71 i 3,14. Se folosete o
reprezentare pe 8 bii. Estimai care este eroarea de reprezentare i artai dac este
acceptabil pentru numrul de bii ai reprezentrii.
2.5 Realizai conversia numrului zecimal 100 n toate bazele de la 2 la 16.
2.6 Fiecare din urmtoarele operaii aritmetice este corect n cel puin un sistem de
numeraie. Stabilii bazele posibile pentru fiecare din aceste operaii:
a) 1234 + 5432 = 6666 b) 41/3 = 13
c) 33/3 = 11 d) 23 + 44 + 14 + 32 = 223
e) 302/20 = 12,1 f) 41 = 5
([Wakerly, 1990])
2.7 Prima expediie pe Marte a descoperit numai ruinele unei civilizaii. Prin studiul
obiectelor gsite, exploratorii au ajuns la concluzia c fiinele respective aveau patru
picioare i un tentacul care se ramifica la capt cu un numr de degete. Dup studii
ndelungate, exploratorii au reuit s traduc matematica marian. Ei au descoperit
urmtoarea ecuaie:
0 125 50 5
2
= + x x
cu soluiile date x = 5 i x = 8. Valoarea x = 5 pare a fi destul de legitim, n timp ce
soluia x = 8 necesit explicaii suplimentare. Reflectnd la modul n care s-a dezvoltat
sistemul de numeraie pe Pmnt, exploratorii au ajuns la concluzia c sistemul marian
a avut o istorie similar. Cte degete credei c aveau marienii?
([Wakerly, 1990])
2.8 Realizai urmtoarele operaii aritmetice, folosind reprezentarea numerelor n
complement fa de doi:
a) 17 + 5 b) - 14 - 12
c) 12 - 6 d) 39 18
e) - 17 52 f) 39 ( - 6 )
2.9 S presupunem c un numr binar B de 4n bii este reprezentat de un numr
hexazecimal H de n cifre. Demonstrai c complementul fa de 2 al numrului B este
28 2 SISTEME DE NUMERAIE
reprezentat de complementul fa de 16 al numrului H. Formulai i demonstrai o
propoziie similar i pentru reprezentarea octal.
([Wakerly, 1990])
2.10 Se d un ntreg x n domeniul 1 2 2
1 1

n n
x . Se definete numrul pozitiv [ ] x ,
ca fiind reprezentarea n complement fa de doi a lui x: [ ] x x = dac 0 x i
[ ] x x
n
= 2 dac 0 < x , unde x este valoarea absolut a lui x. Fie y un alt ntreg n
acelai domeniu ca i x. S se demonstreze c regulile stabilite de adunare n
complement fa de doi sunt corecte prin demonstrarea faptului c urmtoarea relaie
este ntotdeauna corect:
[ ] [ ] [ ] ( )
n
y x y x 2 ulo mod + = +
([Wakerly, 1990])
2.11 Artai cum se face adunarea numerelor reprezentate n cod BCD, formulnd regulile de
generare a transportului i de aplicare a factorului de corecie. Exemplificai pentru
numere BCD formate din o singur cifr i din 2 cifre.
2.12 Artai cum se face scderea numerelor reprezentate n cod BCD, formulnd regulile de
generare a mprumutului i de aplicare a factorului de corecie. Exemplificai pentru
numere BCD formate din o singur cifr.
2.13 Construii cte o secven de numrare n cod Gray pentru numere binare reprezentate
pe 4 bii i respectiv pe 5 bii. Explicai care sunt avantajele utilizrii codului Gray n
aplicaii.
2.14 Dac
101
2 101 , 0 = A i
11
2 11 , 0

= B , s se calculeze expresiile B A+ , B A , i
B A . Reprezentarea acestor expresii se face n virgul mobil.
([Friedman, 1986])
2.15 Reprezentai n virgul mobil numerele 123,321 i 345,543, pe care apoi le vei nmuli
i mpri folosind reprezentrile obinute.
([tefan, 2000])
2.16 Un cod BCD ponderat reprezint fiecare cifr zecimal N printr-o secven de 4 cifre
binare
0 1 2 3
b b b b cu ponderile
3
w ,
2
w ,
1
w ,
0
w astfel nct:
0 0 1 1 2 2 3 3
b w b w b w b w N + + + =
a) Definii un cod BCD cu ponderile 4,3,2,1 (codul definit de noi mai nainte este cel
standard, avnd ponderile 8,4,2,1), astfel nct codul fiecrei cifre zecimale N,
9 0 N , s fie complementul codului pentru cifra N 9 .
b) Cte seturi de ponderi cu aceast proprietate exist, tiind c nici una dintre ponderi
nu poate fi negativ.
([Friedman, 1986])