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: 1734 = 1 10 3 + 7 10 2 + 3 101 + 4 10 0 , 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: 5837 ,412 = 5 10 3 + 8 10 2 + 3 101 + 7 10 0 + 4 10 1 + 1 10 2 + 2 10 3 , unde 4 este cifra zecimilor, 1 a sutimilor i aa mai departe. n cazul general, un numr oarecare scris n baza b sub forma: unde xi {0,1,..., b 1}, are ca valoare suma fiecrei cifre multiplicate cu puterea
.

x n 1 x n 2 ...x1 x0 , x 1 x 2 ...x m ,

20
corespunztoare a bazei:

2 SISTEME DE NUMERAIE

D=

i = m

x b
i

n 1

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:
1101,0012 = 1 2 3 + 1 2 2 + 0 21 + 1 2 0 + 0 2 1 + 0 2 2 + 1 2 3 = 13,12510

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:
110100111 2 = 1 2 8 + 1 2 7 + 0 2 6 + 1 2 5 + 0 2 4 + 0 2 3 + 1 2 2 + 1 21 + 1 2 0 = 42310

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:

11101,10111012 = 011 101, 101 110 100 2 = 35,5648 11101,10111012 = 0001 1101, 1011 10 10 2 = 1D, BA16
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 xn 1 xn 2 ...x1 x0 are valoarea:

D = xi b i = ((...(x n 1 b + x n 2 ) b + ... + x 2 ) b + x1 ) b + x0
i =0

n 1

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 x0 . Ctul obinut are acelai aspect cu formula iniial. Prin mprirea lui la b se obine un nou ct Q i restul x1 . 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 xn1 . 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: 17910 = 101100112 . 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: D F = x 1 b 1 + x 2 b 2 + ... + x m b m Prin multiplicarea cu b a membrilor ecuaiei de mai sus obinem: b D F = x 1 + x 2 b 1 + ... + x m b m +1 Se poate uor observa c partea ntreag a expresiei din membrul drept este x 1 . Prin scderea acestei valori i o nou multiplicare cu b se obine coeficientul x 2 , ca parte ntreag a expresiei rezultate n membrul drept: b (b D F x 1 ) = x 2 + x 3 b 1 + ... + x m b m + 2 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: 1 (MSB) 0,61 2 = 1,22 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 0,6110 0,1001110...2 .

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 17310 i 4210 : 173 + 42 215 1 1 10101101+ 00101010 11010111

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 b n . Dac notm numrul cu D, atunci complementul lui fa de b este C = b n D . Operaia de scdere poate fi ns evitat dac scriem rezultatul sub forma C = b n 1 D + 1 . Dac definim complementul unei cifre d sub forma c = b 1 d , atunci expresia b n 1 D 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 10 4 1849 , 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 11910 se calculeaz n felul urmtor: 11910 = 01110111 2 . Prin complementarea fiecrui bit din aceast reprezentare se obine 10001000 2 , iar prin adunarea lui 1 se obine 100010012 = 11910 . Prin complementarea fa de doi se realizeaz, de fapt, schimbarea semnului unui numr, indiferent de valoarea lui iniial. n reprezentarea binar a numrului 11910 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 25 + - 30 -5 00011001 + 00101010 01000011 00011001 + 11100010 0 11111011 25 + - 12 13 - 17 + - 95 - 112 00011001 + 11110100 1 00001101 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 = - 121 - 100 + - 85 - 185 10011100 + 10101011 1 01000111 = + 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 111011 111011 ..... 111011 111000001111 = 15

24
Prin mprirea lui 29 la 5 se obine ctul 5 i restul 4: 11101 101 101 101 01001 101 100

2 SISTEME DE NUMERAIE

Se observ c nmulirea unui ntreg pozitiv cu 2 i 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 2 i 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 001 010 011 000 001 011 010 100 101 110 111 110 111 101 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:

N = 0, M 2 E ,
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: 0,11001 2100 = 1100 ,1 Refacei calculul zecimal pentru operaia 0,78125 24 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 2.2 2.3 2.4 Realizai conversia n baza 10 a urmtoarelor numere: 11010112 ; 1740038 ; 12013 ; 63,528 ; AB3D16 ; C79,FE16 . Realizai conversia n baza 8 a urmtoarelor numere zecimale: 16 ; 365 ; 3489 ; 97,12. Realizai conversia n baza 16 a urmtoarelor numere zecimale: 61453 ; 23851 ; 5719; 23,25; 574,32 . 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. Realizai conversia numrului zecimal 100 n toate bazele de la 2 la 16. 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 c) 33/3 = 11 e) 302/20 = 12,1 2.7 b) 41/3 = 13 d) 23 + 44 + 14 + 32 = 223 f) 41 = 5 ([Wakerly, 1990])

2.5 2.6

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:

5 x 2 50 x + 125 = 0
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 c) 12 - 6 e) - 17 52 2.9 b) - 14 - 12 d) 39 18 f) 39 ( - 6 )

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 2 n 1 x 2 n 1 1 . Se definete numrul pozitiv [x ] , ca fiind reprezentarea n complement fa de doi a lui x: [x ] = x dac x 0 i [x ] = 2 n x dac x < 0 , 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:

[x + y ] = ([x ] + [y ])mod ulo 2 n

([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 A = 0,101 2101 i B = 0,11 2 11 , s se calculeze expresiile A + B , A B , i A B . 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 b3b2 b1b0 cu ponderile w3 , w2 , w1 , w0 astfel nct:

N = w3 b3 + w2 b2 + w1 b1 + w0 b0
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, 0 N 9 , s fie complementul codului pentru cifra 9 N . b) Cte seturi de ponderi cu aceast proprietate exist, tiind c nici una dintre ponderi nu poate fi negativ. ([Friedman, 1986])