Sunteți pe pagina 1din 143

Capitolul 1 - Structuri si arhitecturi de calculatoare numerice

1. STRUCTURI SI ARHITECTURI DE
CALCULATOARE NUMERICE

1.1. Limbaje si masini virtuale


1.2. Evolutia CN din punct de vedere al resurselor fizice
1.3. Evolutia CN din punct de vedere al Sistemelor de operare
1.4. Arhitecturi de calculatoare numerice
1.5. Structura unui calculator numeric

13.01.2004

1 / 39

Capitolul 1 - Structuri si arhitecturi de calculatoare numerice

1. STRUCTURI SI ARHITECTURI DE
CALCULATOARE NUMERICE
1.1. Limbaje si masini virtuale
Calculatorul numeric (CN) reprezinta un sistem fizic capabil sa rezolve
probleme prin executia unor instructiuni primite sub forma unui program.
Aplicatiile derulate pe CN, respectiv:
1. prelucrari de date;
2. prelucrari de informatii;
3. prelucrari de cunostinte;
4. prelucrari inteligente (inteligenta artificiala)
pot fi ilustrate prin structura piramidala de mai jos.
IA
Prelucrari de
cunostinte
Creste
complexitate de
prelucrare

Prelucrari de
informatii
Prelucrari
de date

Creste volum
de prelucrare

Fig. 1-1. Structura piramidala a tipurilor de prelucrari

1. Spatiul datelor. Materialul prelucrat la baza piramidei poate fi


considerat ca un spatiu de date mutual independente. Acest spatiu care este
cel mai mare spatiu al obiectelor prelucrate n CN include caractere,
simboluri si/sau reprezentari multidimensionale ale acestora, numere n
diverse formate.
2. Spatiul informatiilor. Termenul de informatie se asociaza n acest
context unei colectii de date conectate printr-o anumita relatie sau structura
sintactica (sintaxa reprezinta un set de reguli care guverneaza alcatuirea

13.01.2004

2 / 39

Capitolul 1 - Structuri si arhitecturi de calculatoare numerice

propozitiilor ntr-un limbaj). Spatiul informatiilor se constituie ntr-un


subspatiu al datelor.
3. Spatiul cunostintelor. n cadrul acestui spatiu, care formeaza un

subspatiu al spatiului informatiilor, informatiile sunt legate ntre ele


printr-o structura semantica (semantica reprezinta un set de reguli
care permit atribuirea de ntelesuri propozitiilor ntr-un limbaj)
4. Spatiul prelucrarilor de tip inteligenta artificiala. n cadrul acestui
spatiu (subspatiu al spatiului cunostintelor) se lucreaza cu baze de
cunostinte, reguli de inferenta (rationament) sau cu alte mijloace
specifice domeniului inteligentei artificiale.
Dupa cum se va vedea toate calculatoarele realizate pna n prezent
evolueaza pe baza unui program anterior memorat, program realizat sub
forma unei secvente de instructiuni aferente unui limbaj artificial. n aceste
conditii se poate spune ca pna n prezent nu a fost realizat un calculator
sub forma unui sistem inteligent care gndeste independent.
n ceea ce priveste limbajele de programare acestea pot fi mai
apropiate de masina care le executa sau de utilizatorul uman. Gradul de
apropiere se cuantifica n nivelul de perceptie al respectivului limbaj si n
capacitatea de manevrare a instructiunilor aferente.
Componentele fizice ale unui CN (circuitele electronice) nu pot
recunoaste si executa dect un numar limitat de instructiuni. Instructiunile
care pot fi ntelese si executate direct (fara a necesita translatare sau
interpretare) sunt instructiuni masina iar limbajul corespunzator este
limbajul masina pe care l vom nota L1. Limbajul L1 cu toate ca permite
comunicarea utilizatorului cu masina este greu de folosit, iar n aplicatiile
de dimensiuni mari chiar imposibil. n aceste conditii este necesara crearea
unui nou limbaj, pe care l vom nota cu L2, mult mai apropiat de modul
natural de gndire si de operare al omului.
Din cele prezentate rezulta ca utilizatorul poate scrie programe att n
L1 ct si n L2, dar calculatorul va executa ntotdeauna instructiuni
aferente limbajului L1 pentru care a fost proiectat fizic. Pentru executia
unui program scris n limbajul L2 exista doua tehnici si anume:
1. translatarea (traducerea) care presupune nlocuirea fiecarei
instructiuni din L2 cu instructiuni L1, rezultnd un program n L1
care va putea fi executat direct de masina;

13.01.2004

3 / 39

Capitolul 1 - Structuri si arhitecturi de calculatoare numerice

2. interpretarea care presupune analizarea fiecarei instructiuni din


programul scris n L2 si executia ei printr-o secventa echivalenta
de instructiuni din L1.
Avnd n vedere ca utilizatorul lucreaza cu o masina careia i se
adreseaza n L2 dar care executa n L1, sa o numim masina virtuala
pentru a o deosebi de masina reala careia utilizatorul i se adreseaza n L1,
iar executia se face tot n L1. n general o masina virtuala este o masina
capabila sa execute programe scrise n limbaje de nivel superior celui
accesibil nivelului fizic. Ratiunea de a fi a masinii virtuale rezulta pe de o
parte din dificultatea realizarii fizice a unei masini capabile sa execute
direct programe scrise n L2, iar pe de alta parte, din dificultatea utilizarii
directe a limbajului L1.
Daca si programarea n L2 este dificila se poate crea un alt limbaj L3,
executia unui program scris n L3 putndu-se realiza prin aceleasi doua
tehnici, respectiv:
1. traducerea programului ntr-un program echivalent scris n L2;
2. interpretarea fiecarei instructiuni din L3 prin instructiuni din L2.
Se poate spune ca masina virtuala avnd limbajul L3 are la baza
masina virtuala cu limbajul L2. Metoda se poate extinde pentru diferite
limbaje si masini din ce n ce mai performante, numite n literatura de
specialitate simplu niveluri.
Un calculator alcatuit din n niveluri conceptuale poate fi vazut ca n
masini virtuale distincte fiecare masina avnd propriul sau limbaj.
Programele scrise n L2, L3, ,Ln trebuie sa fie interpretate de un
interpretor avnd un nivel mai mic sau sa fie translatate (traduse) ntr-un
limbaj inferior. Programatorul care are programele scrise pentru o masina
virtuala de nivelul n nu este interesat de translatoarele sau interpretoarele
aflate la un nivel inferior.
Calculatoarele actuale constau din sapte niveluri conceptual ilustrate
n fig. 1-2, la extreme situndu-se nivelul logic digital respectiv nivelul
orientat pe aplicatie.
Nivelul 0 nivelul logic digital. Acest nivel este realizat fizic din
circuite logice dintre care poarta logica este elementul fundamental. Fiecare
poarta dispune de una sau mai multe intrari si ntoarce ca rezultat valoarea
unei functii logice simple. Acest nivel executa instructiunile limbajului

13.01.2004

4 / 39

Capitolul 1 - Structuri si arhitecturi de calculatoare numerice

microprogramat (specifice nivelului 1), care actioneaza asupra nivelului 0


ca niste comenzi.
Nivelul 6

Nivelul orientat pe aplicatie


Translatare (agregare, compilare)

Nivelul 5

Limbajul de nivel nalt


Translatare ( compilare)

Nivelul 4

Limbajul de asamblare
Translatare ( asamblare)

Nivelul 3

Sistemul de operare
Interpretare ( sistem de operare)

Nivelul 2

Masina conventionala
Interpretare ( microprogram)

Nivelul 1

Microprogram
Microprogram executat direct de
componenta hardware

Nivelul 0

Nivelul logic digital

Fig. 1-2. Nivelurile de masini virtuale corespunzatoare


calculatoarelor actuale.

Nivelul 1 nivelul microprogram. Este primul nivel caruia i este


asociat conceptul de program. Acest program numit microprogram este
realizat cu un set restrns de instructiuni (n medie circa 20 de instructiuni)
de transfer si teste simple ale unor conditii. Microprogramul interpreteaza
instructiunile nivelului 2 si le executa folosind resursele nivelului 0. Este de

13.01.2004

5 / 39

Capitolul 1 - Structuri si arhitecturi de calculatoare numerice

remarcat faptul ca fiecare instructiune a nivelului 2 este executata de catre


un microprogram.
Nivelul 2 nivelul masinii conventionale (traditionale). Acest nivel
se numeste nivelul masinii conventionale deoarece asigura compatibilitatea
calculatoarelor realizate de catre diferite firme. Compatibilizarea este
necesara deoarece nivelurile 0 si 1 pot diferi pentru un acelasi tip de
calculator. Fiecare procesor defineste n mod implicit un limbaj de nivel 2
si o masina virtuala al carei limbaj masina este interpretat de un
microprogram. n situatia n care un calculator nu dispune de nivelul
microprogramat, instructiunile de pe nivelul 2 sunt tratate direct de nivelul
0.
Nivelul 3 nivelul sistemului de operare. Acest nivel este un nivel
hibrid, n sensul ca cea mai mare parte a instructiunilor care definesc
limbajul aferent, L3, sunt de tip masina. La acest nivel se realizeaza sarcini
ce privesc gestionarea resurselor calculatorului ( unitate centrala, memorie,
periferice, etc.).
Este de remarcat faptul ca limbajele de nivel 1, 2 si 3 sunt orientate
catre modul numeric si nu sunt accesibile programatorului mediu. ncepnd
cu nivelul 4 apar limbaje formate din simboluri si cuvinte, care au o
sintaxa.
Nivelul 4 nivelul limbajului de asamblare. Limbajul de asamblare
permite accesul la unele dintre resursele fizice ale masinii n conditiile
utilizarii unor mnemonice mai usor de manevrat dect codurile numerice
asociate instructiunilor limbajului masina.
Nivelul 5 nivelul limbajelor de nivel nalt. La acest nivel se gasesc
limbaje, numite adesea limbaje de nivel nalt si care sunt destinate
programatorilor de aplicatii. ntre cele mai cunoscute masini virtuale
specifice acestui nivel sunt cele pentru limbajele Basic, C, Cobol, Fortran,
Java, Lisp, Modula-2, Pascal, Prolog. Programele scrise n limbajele
nivelului 5 sunt translatate n limbajele specifice nivelurilor 4 sau 3 de catre
programe specializate numite compilatoare.
Nivelul 6 nivelul aplicatie. Acest nivel este destinat aplicatiilor
specializate si contine limbaje destinate unor aplicatii cum ar fi: proiectarea
asistata, economie, administratie, grafica, etc.)
n concluzie se poate spune ca un calculator poate fi vazut ca o suita
de niveluri, fiecare nivel nglobndu-le pe cele precedente. n acest sens un
nivel prezinta un anumit grad de abstractizare si contine diverse obiecte si

13.01.2004

6 / 39

Capitolul 1 - Structuri si arhitecturi de calculatoare numerice

operatii cu aceste obiecte. n sens ascendent creste complexitatea


prelucrarii iar n sens descendent creste volumul materialului prelucrat.
Pentru fiecare nivel masina se defineste arhitectura calculatorului ca
fiind totalitatea tipurilor de date, operatiilor si facilitatilor vizibile si
accesibile programatorilor.
Structura calculatorului stabileste si defineste componentele
necesare realizarii functiilor specificate. n principiu se poate vorbi de o
abordare structurala si n cadrul fiecarui nivel dar n general aceasta are n
vedere masina n ansamblul sau. Dupa cum se va vedea cvasitotalitatea
calculatoarelor realizate pna n prezent respecta structura definita de von
Neumann n 1945 (se va reveni).
n afara notiunilor de arhitectura si structura CN mai sunt
caracterizate si prin notiunile de hardware, software, firmware.
Notiunea hardware ncadreaza totalitatea componentelor fizice
(electronice, electrice, mecanice etc.) aferente unui sistem de calcul. Practic
caracteristicile hardware definesc masina de nivel 0 care executa
programul masinii de nivel 1.
Notiunea software ncadreaza totalitatea programelor si procedurilor
care confera unui calculator capacitatea de a executa sarcini specifice.
Notiunea firmware ncadreaza componente software nemodificabile
ncorporate de catre fabricanti n anumite dispozitive electronice.
1.2. Evolutia CN din punct de vedere al resurselor fizice
Istoria dezvoltarii calculatoarelor poate fi privita din doua puncte de
vedere si anume:
- evolutia diferitelor niveluri de masini virtuale si a limbajelor
asociate lor;
- evolutia tehnologiilor n care a fost realizata masina de nivel 0
(masina fizica) avnd limbajul L1.
Urmarirea evolutiei CN trebuie analizata din perspectiva asigurarii
resurselor importante pentru acestea, ilustrate n fig. 1-3 si anume:
- resurse de calcul si comanda (RCC);
- resurse de memorare (RM);
- resurse de introducere si extragere a datelor (RP);

13.01.2004

7 / 39

Capitolul 1 - Structuri si arhitecturi de calculatoare numerice

- resurse de comunicatie (RT);


- resurse de programare (RP).

U
RS

RCC

RS

RT
RP

RM
RS

U
Fig. 1-3. Structura generala a unui sistem de calcul.

n evolutia instrumentelor destinate realizarii de operatii aritmetice (n


care sunt incluse si CN) pot fi identificate 4 etape concretizate n 4 tipuri de
masini si anume:
I.
masini manuale;
II.
masini mecanice;
III.
masini electromecanice;
IV.
masini electronice.
Tot evolutia CN mai poate fi caracterizata cu ajutorul asa numitelor
generatii. Pna n prezent sunt identificate 5 generatii de CN G0G4,
ntre care una grupeaza toate calculatoarele preelectronice, celelalte 4
fiind asociate n exclusivitate calculatoarelor electronice.
G0 - generatia zero (antichitate 1945)
n aceasta generatie sunt ncadrate dispozitivele manuale, mecanice,
electromecanice.
Masini manuale . n rndul acestora pot fi incluse dispozitive de tip
rigla sau abac (abacul este cunoscut n China de circa 2500 de ani).
Masini mecanice. Meritul de a fi realizat prima masina de calcul i
revine lui Blaise Pascal. Aceasta masina realizata n 1642, era antrenata
manual, continea angrenaje mecanice cu roti dintate si putea efectua numai

13.01.2004

8 / 39

Capitolul 1 - Structuri si arhitecturi de calculatoare numerice

adunari si scaderi. Unul dintre limbajele de nivel nalt importante a primit


numele PASCAL, care n acelasi timp este si acronim pentru program
applique a la selection et la compilation automatique de la litterature ) .
Treizeci de ani mai trziu, n 1671, masina lui Pascal a fost mbunatatita de
catre Wielhelm von Leibnitz prin adaugarea operatiilor da nmultire si
mpartire.
n 1830 Charles Babbage profesor de matematica la Universitatea
Cambridge a construit masina analitica. Aceasta continea patru parti:
memoria (magazia), unitatea de calcul, intrarea (cititorul de cartele
perforate) si iesirea (perforatorul de cartele), toate n ntregime mecanice.
Marea noutate a acestei masini era posibilitatea de prelua datele de intrare
de pe cartele perforate si de a ntoarce rezultatele tot pe un asemenea
suport. Memoria putea stoca 1000 de cuvinte de 50 de cifre pentru variabile
si rezultate. Unitatea de calcul prelua operanzii din memorie, efectua
diverse operatii asupra lor (+, -, *, / ) si ntorcea rezultatul tot n memorie.
Acest mod de secventiere a operatiilor confera masinii lui Babbage
calitatea de prim precursor al calculatoarelor numerice de mai trziu. Un
aspect interesant de relevat este acela ca prima programatoare a acestei
masini a fost Ada Lovelace, fiica poetului englez Lord Byron .

Masini electromecanice. ntre acestea importanta este masina


Mark 1 (Automatic Sequence Controlled Calculator) construita n
1944 de prof. Howard Aiken (Universitatea Harward) mpreuna cu
specialisti de la IBM si Bell Telephone, dupa un plan echivalent
masinii lui Babbage. Masina continea relee, selectoare mecanice,
cablaje). Memoria era de 72 de numere a cte 23 de cifre, efectua o
adunare n 0,4 secunde si o nmultire n 6 secunde. Ca suporturi
pentru introducerea/extragerea datelor utiliza cartele si banda
perforata.
G1 - generatia a ntia de CN tuburile cu vid (1945 1955)
Circuitele logice aferente CN din G1 erau realizate cu tuburi
electronice caracterizat de un consum energetic ridicat. Contineau o
unica memorie realizata cu tambur magnetic. Periferia era extrem de
redusa si se reducea la un cititor/perforator de hrtie. Reperoriul de
instructiuni se reducea la 10-20 de instructiuni simple care de regula
defineau limbajul L1 (cel mult L2), iar raportul timpilor n care se
realiza o nmultire respectiv o adunare era 20/1. Dupa cum se observa
13.01.2004

9 / 39

Capitolul 1 - Structuri si arhitecturi de calculatoare numerice

erau schimbari minore fata de masinile realizate de Aiken sau chiar


Babbage, dar saltul semnificativ l marca patrunderea n era
electronicii.
Cel de-al doilea razboi momdial a grabit aparitia calculatoarelor,
constituind din acest punct de vedere un factor favorizant. n
consecinta primele calculatoare de G1 aui avut o destinatie militara si
au fost reprezentate de masinile ENIGMA realizata de Germania
pentru codificarea mesajelor ce urmau a fi transmise respectiv
COLLOSUS realizat de armata britanica
pentru deecodificarea
mesajelor germane interceptate. La proiectarea sa a participat si
matematicianul englez Alan Turing.
n 1946 a devenit operational calculatorul ENIAC Electronic
Numerical Integrator And Computer realizat la University of
Pensylvania de John Mauchley si J. Presper Eckert si destinat tot
aplicatiilor militare (calcularea caracteristicilor traiectoriilor balistice). Aflat
n functiune pna n anul 1955 ENIAC avea 19000 tubes si 1500 de relee si
era structurat n 30 de unitati separate, care procesau n paralel datele. Din
punct de vedere al arhitecturii continea 20 de registre a cte 10 cifre
zecimale destinate rezultatelor partiale sau finale. Performantele sale erau
uluitoare pentru acea vreme, putnd efectua 5000 de operatii/secunda,
rezolvnd n 20 de secunde probleme a caror solutionare manuala necesita
doua zile. Cntarea peste 30 de tone, ocupa o suprafata de 1800 sq ft si
consuma peste 175 kwh.
Urmasul lui ENIAC a fost calculatorul EDVAC - Electronic Discrete
Variable Automatic Computer care elimina unitatile paralele de procesare si
continea numai 4000 de tuburi. Echipele care au realizat aceste calculatoare
l-au avut n componenta pe matematicianul ungaro-american John von
Neumann care ntr-un articol publicat n anul 1947 a formulat principiile
arhitecturii care-i poarta numele.
ENIAC a stat la baza si as altor realizari cum ar fi EDSAC 1949,
Cambridge University UK, MANIAC Los Alamos Laboratory, ILLIAC
University of Illinois.
Primul calculator destinat aplicatiilor civile a fost UNIVAC 1 lansat
n 1951 de Eckert and Mauchly. Una din primele aplicatii n care a fost
implicat a fost predictia, pe baza unui esantion rezultatelor alegerilor
prezidentiale din SUA cstigate de Dwight Eisenhower.
Alte realizari care se pot mentiona n cadrul G1:

13.01.2004

10 / 39

Capitolul 1 - Structuri si arhitecturi de calculatoare numerice

- Whirlwind I realizat la MIT (Massachusetts Institute of


Technology) si destinat aplicatiilor de conducere n timp real;
- IBM 701 cu memorie de 2 kcuvinte a 36 de biti si doua
instructiuni pe cuvnt;
- IBM 704 cu memorie de 4 kcuvinte a cte 36 biti, instrucctiuni pe
cte un cuvnt, procesare n virgula mobila (IBM International Business
Machine).

G2 - generatia a doua de CN componente discrete (1955


1965)

n 1948 John Bardeen, Walter Brattain si William Shokley de la Bell


Telephone Laboratories au inventat tranzistorul, inventie pentru care n
1956 au primit premiul Nobel pentru fizica. Aparitia componentelor
electronice fara purtatori mobili de sarcina electrica au condus la aparitia
unei noi generatii de CN careia i se pot evidentia urmatoarele caracteristici:
- utilizarea dispozitivelor semiconductoare (diode si tranzistori cu Ge
si apoi cu Si) ce ofereau un gabarit redus, putere disipata mai mica,
siguranta n functionare mai ridicata, eliminarea fenomenelor de radiatie;
- memorii pe inele de ferita (din 1959) cu timpi de acces de ordinul a
2-12 s (de 1000 de ori mai rapida dect memoria pe tambur magnetic);
- interconectarea componentelor era realizata pe cablaj imprimat,
aspect ce a permis modularizarea si implicit usurarea activitatii de
ntretinere si depanare;
- perfectionari n domeniul echipamentelor periferice prin aparitia
unitatilor de discurilor si banda magnetica, primele imprimante etc.;
- performantele cresc n conditiile reducerii costurilor (trimp
nmultire / timp adunare = 10/1 ;
- apar primele versiuni ale limbajelor de nivel nalt
FORTRAN (FORmula TRANslation) dezvoltat ntre anii
1954-1958 de Jim Backus si destinat aplicatiilor stiintifice;
COBOL (COmmon Business-Oriented Language) dezvoltat
ntre anii 1959-1961 la solicitarea Departamentului Apararii a SUA si
destinat aplicatiilor n care se prelucreaza volume mari de date;
ALGOL (ALGOrithmic Language) lansat n 1959, a fost
primul limbaj structurat, utilizat pe scara larga n Europa.
Primul CN cu tranzistoare a fost TX-0 (Tranzistorised
eXperimental computer 0), realizat la MIT ca o continuare a calculatorului
Whirlwind.

13.01.2004

11 / 39

Capitolul 1 - Structuri si arhitecturi de calculatoare numerice

n 1961 firma DEC (Digital Equipment Corporation ) a lansat


calculatorul PDP-1 (Programmable Data Processor) cu o memorie interna
de 4 kcuvinte a 18 biti si ciclul instructiune de 5 s. O premiera absoluta a
lui PDP 1 o constituie otilizarea ecranului cu tub catodic (CRT Cathode
Ray Tube) cu posibilitatea de control a fiecarui punct de pe ecranul cu
rezolutie de 512x512.
Dupa ctiva ani tod DEC a introdus calculatorul PDP-8 caracterizat
de o magistrala unica la care erau conectate urmatoarele module: CPU,
memoria, consola, unitatile de itrare/iesire pe banda de hrtie, alte
dispozitive de I/E. A fost primul CN realizat n mare serie, fiind vndute n
jur de 50000 de sisteme.
n 1964 DEC a lansat calculatorul CDC 6600 (proiectant Seymour
Cray - cel care mai trziu avea sa realizeze seria de calculatoare CRAY).
IBM s-a impus prin calculatoarele IBM 7094 (32 kcuvinte de 36
biti, ciclu instructiune de 2 s ) si n special prin calculatorul comercial
IBM 1401.
n Romnia au existat preocupari de dezvoltare a unor CN unicat
din primele doua generatii cum ar fi DACICC, MECIPT, ANCA, CETA
la Institutul de Fizica Atomica, Institutele Politehnice din Timisoara, Cluj,
Bucuresti etc.
G3 - generatia a treia de CN circuite integrate (1965 1980)
Aparitia acestei generatii a fost determinata de inventarea circuitelor
integrate CI, care grupau pe o patila de siliciu mai multe componente.
Principalele caracteristici ale CN din aceasta generatie sunt:
- utilizarea CI pe scara redusa (SSI - Small Scale Integration) cu
pna la 100 tranzistoare / chip;
- utilizarea memoriilor semiconductoare cu timpi de acces dre
ordinul a 0,5 1,75 s;
- memorii externe de mare capacitate: discuri de masa capabile sa
stocheze pna la 1 MB de informatie.
Sistemele care s-au impus atentiei din aceasta generatie au fost IBM
360 si PDP 11.
Principalele caracteristici ale lui IBM 360 au fost: ciclul instructiune
de 250 nsec, memoria de pna la 512 kcuvinte a cte un octet,spatiul de
aresare 216 octeti (16 Mocteti), registre de lucru interne pe 32 de biti,

13.01.2004

12 / 39

Capitolul 1 - Structuri si arhitecturi de calculatoare numerice

portabilitatea programelor n limbaj de asamblare pentru diferite versiuni.


Este primul calculator pe vcare s-a aplicat multiprogramarea, care permite
existenta n memorie si executia simultana (sau cvasisimultana) a mai
multor programe.
Calculatorul PDP 11 realizat de DEC avea multe trasaturi apropiate de
IBM 360 (cu deosebirea ca procesa cuvinte pe 16 biti) nsa avea un raport
performanta/cost mult mai bun. A fost considerat cel mai performant
calculator al acestei generatii, avnd un succes enorm n special n
universitati.
n Romnia s-au produs calculatoarele FELIX C la ICE Bucuresti.
Primul calculator de proces a fost FELIX C32P. ncepnd cu 1977 s+au
produs calculatoarele INDEPENDENT si CORAL compatibile cu PDP
11.

G4 - generatia a patra de CN circuite VLSI (dupa 1980)


Aparitia acestei generatii a fost posibila datorita perfectionarii
n primul rnd a tehnologiilor din industria electronica si se
caracterizeaza prin urmatoarele aspecte importante:
- utilizarea masiva a circuitelor integrate pe scara foarte larga
(VLSI Verry Large Scale Integration) si n primul rnd a
microprocesoarelor care integreaza milioane de tranzistori pe un cip
si care prezinta timpi de comutatie de ordinul ns.;
- dezvoltarea de noi tipuri de memorii (MOS, magnetice,
holografice) si echipamente periferice orientate pe sesizarea primara
a datelor;
- interconectarea calculatoarelor n retele nsotita de
ntrepatrunderea industriilor de calculatoare si de telecomunicatii;
- aparitia si dezvoltarea mediilor de programare complexe cu
puternice facilitati grafice.
Odata cu generatia a IV-a calculatorul devine un instrument
individual de lucru, accesibil ca pret si cu performante care erau de
neimaginat pentru vechile generatii.
ntruct microprocesorul (P) a avut un cuvnt greu de spus n ceea
ce priveste performantele generatiei a IV-a n continuare vor fi prezentate

13.01.2004

13 / 39

Capitolul 1 - Structuri si arhitecturi de calculatoare numerice

cteva elemente referitoare la evolutia P produse de doua dintre cele mai


importante firme si anume Intel si Motorola.

Familia de P Intel
Primul P au fost 4004 pe 4 biti n 1971 si 8008 pe 8 biti n 1972.
Acestea au fost practic primele CPU (Central Processing Unit) realizate
ntr-un singur circuit integrat.
Datorita succesului nregistrat au fost realizate noi tipuri de P, care din
punctul de vedere al anului de aparitie, al lungimii cuvntului de date si al
capacitatii de adresare se prezinta astfel:
1974
8080, 8085
8 biti 64 kB
1976
8086
16 biti 1 MB
1978
8088
8 biti 1 MB (n interior 16 biti)
1982
80186,80188 16 biti 1 MB (facilitati de I/E)
1982
80286
16 biti 16 MB
1985
80386
32 biti 4 GB
1989
80486
32 biti 4 GB (versiune mai rapida pt 386)
1993
Pentium
64 biti 64 GB (structura superscalara).
Firma IBM a utilizat P 8088 n primul calculator personal IBMPC/XT (eXtended Technology) iar 80286 n calculatoarele IBM-PC/AT
(Advanced Technology), care a devenit standard n industria
calculatoarelor personale. Setul de instructiuni cuprindea instructiunile
procesoarelor precedente la care au fost adaugate altele mai performante,
asigurndu-se astfel compatibilitatea n jos.
Procesorul 80386 are att magistrala de date ct si registrele pe 32 biti
si un spatiu de adresare mult mai mare, pastrndu-se n continuare regula
compatibilitatii n jos.
Procesorul 80486 este o mbunatatire a lui 80386 n ce priveste viteza,
datorita ncorporarii coprocesorului de virgula mobila, a controlorului de
memorie si a unei memorii cache de 8kB.
Pentium realizeaza trecerea la arhitectura superpipeline n conditiile
lungimii magistralei de date de 64 kB si a posibilitatii de conectare a mai
multor P (maximum 4) ntr-un sistem.
Familia de P Motorola
Circuitele Motorola au evoluat n paralel cu cele realizate de
Intel, ntre ele existnd mereu o echivalenta si o concurenta pe piata
calculatoarelor.
13.01.2004
14 / 39

Capitolul 1 - Structuri si arhitecturi de calculatoare numerice

S-a nceput cu 6800 ca un raspuns la I8080. n 1979 apare 68000


pe 16 biti si 16 MB memorie, dar cu registre de 32 biti. Variante mai
importante ale lui 68000 au fost 68010 (1983 cu facilitati de control a
memoriei virtuale dar numai cu posibilitati de adresare a numai 16
MB de memorie) si 68013 (1983 care adauga un spatiu de adresare
de 2 GB).
Urmatoarele procesoare au fost: 68020 (1984 magistrala de date
pe 32 biti spatiu de adresare de 4 GB echivalentul lui 80386) si
68030 (1987) care adauga managementul de memorie n acelasi
integrat.
n 1989 apare 68040 care ca si 80486 continea n acelasi integrat
coprocesorul de virgula mobila, unitatea de management a
memoriei, memoria cache.
ntre sistemele bazate pe P Motorola sunt de evidentiat
urmatoarele: 68000 Macintosh, Atari, Amiga - PCuri; 68020 Sun,
Apollo, Hewlett - Packard statii de lucru.
Si n ceea ce priveste calculatoarele de G4 sunt de notat realizari din
Romnia cum ar fi: M18, M18B, M118 (8080), Felix PC (8086), PRAE,
aMIC, HC85 (Z80).
Urmarind evolutia calculatoarelor realizate pna n prezent se desprind
doua trasaturi comune importante:
- toate evolueaza n baza unui program memorat;
- limbajul de programare este artificial.
Spre sfrsitul anilor 80 s-a ncercat o formulare a cerintelor pentru
generatia a V-a. Potrivit acestor cerinte arhitectura de baza a unei masini de
G5 urma sa cuprinda urmatoarele elemente importante:
- o interfata inteligenta care sa permita dialogul pe baza de limbaj
natural (voce, sunete, imagini, informatie grafica);

masina pentru rezolvarea de probleme ( realizeaza rationamente


care sa permita rezolvarea problemei fara cunoasterea prealabila a
algoritmului;

baza de cunostinte cu un volum imens, n care cautarea sa se faca


foarte rapid.

13.01.2004

15 / 39

Capitolul 1 - Structuri si arhitecturi de calculatoare numerice

n tabelul 1.1 se prezinta sintetic un scurt istoric al dezvoltarii din


domeniul calculatoarelor.
Tabelul 1.1
AN

NUME

SUBIECT

1642
1834
1904
1906
1936
1943
1944

1946

1948
1948
1949

1951
1951
0
1952

B. Pascal
C. Babbage

Prima masina de calculat mecanica


Masina analitica de la Cambridge cu
instructiuni pe cartela perforata
J. A. Flemming
Dioda
Lee De Forest
Trioda
K. Zuse
Primul calculator cu relee - Berlin
Guv.
Britanic
cu Primul calculator electronic cu tuburi
concursul lui A. Turing
cu vid COLOSSUS
H. Aiken
Primul calculator AMERICAN
MARK 1 (72 cuvinte a 23 cifre, ciclu
masina de 6 sec.) nceputul erei
electronicii
J. Mauchly si J.P. Debutul generatiei I de calculatoare
Eckert
ENIAC, Univ. Pennsylvenia (18.000
tuburi electronice, 1.500 relee., 600
comutatoare, 30 tone, 150 KW)
J.
Bardeen,
W Tranzistorul
Shockley, W. Brittain
N. Wiener
Cibernetica
M.
Wilkes,
cu Primul
calculator
cu
program
arhitectura propusa de nregistrat, EDSAC
J. Von Neumann
MIT
Primul calculator
n timp real,
WHIRLWIND
J. Mauchly si J.P. Primul calculator comercializat
Eckert
UNIVAC
1
2
John von Neumann
Calculatorul IAS, Princeton, va

13.01.2004

16 / 39

Capitolul 1 - Structuri si arhitecturi de calculatoare numerice

1955

Laboratoarele Lincoln

19561960
19601961

Firma IBM

1961
1962

Firma IBM
Firma IBM

1963

Firma BORROUGHS

1964

Firma IBM

1964
1965

Firma CDC
Firma DEC

1970

Firma DEC

Firma DEC

1970 - Firma INTEL


1971
1972
Firma INTEL
1974
Firma CRAY
1978
Firma INTEL
0

13.01.2004

raspndi arhitectura de bata von


Neumann
Primul calculator
echipat cu
tranzistori TX - 0
Calculatorul IBM 704 Circuite
integrate
Primul minicalculator. PDP-1, practic
nceputul generatiei a doua de
calculatoare (tranzistorizate) si a
miniinfomaticii
Masina de gestiune 140 I
Primul calculator
stiintific puternic
(pe 36 de biti) IBM 7094
Calculatorul B 5000 primul
calculator dedicat unui limbaj de
programare ALGOL 60
Prima familie de calculatoare IBM
360; firma IBM prima suprematie n
informatica;
multiprogramare;
nceputul generatiei a treia (cu circuite
integrate)
Primul calculator paralel - 6600
Primul calculator
cu productie de
masa (pe 12 biti). PDP -8
Minicalculatorul PDP-11, firma DEC
preia suprematia n miniinformatica.
Circuite integrate pe scara larga
Primul microprocesor de 4 biti - 4004
Primul microprocesor de 8 biti 8008
Primul supercalculator CRAY-1
Microprocesorul 8080 prima unitate
centrala pe un cip
2

17 / 39

Capitolul 1 - Structuri si arhitecturi de calculatoare numerice

1978

Firma DEC

Primul superminicalculator de 32 bitiVACS


1979
Firma MOTOROLA
Primul procesor al familiei 680x0
68000
1980
Firma IBM
nceputul generatiei a patra de
calculatoare (cu circuite VLS1); era
calculatoarelor personale, PC
1982
Firma INTEL
Microprocesorul de 16 biti 80286
1983
SUA
Tehnologia LAN )Local Area
Network) este folosita pe scara larga
1984
Firma MOTOROLA
Primul microprocesor de 32 biti
68020
1985
Firma INTEL
Microprocesorul de 32 biti 80386
1987
Firma MOTOROLA
Microprocesorul de 32 biti cu unitate
de gestiune a memoriei 68030
1989
Firma INTEL
Microprocesorul de l32 biti cu
coprocesor si memorie cache - 80486
1990 - Thinking Machines Co. nceputul generatiei a cincea de
1991
CM2 si CM5
calculatoare (preluare masiv paralela)
1992
Laboratorul
CERN Serviciul de informatii www (World
Geneva
Wide Web) oferit pe Internet
1993
Firma INTEL
Microprocesorul
cu
structura
superscalara Pentium
Firma Sun
1995
Tehnologia
JAVA
asigura
Microsystems
interactivitatea serviciului www
Firma CYRIX
1996
Microprocesorul
n
arhitectura
superpipe /line/ 6x86 P200+
Firma
AMD
1997
Microprocesoarele RISC K5, K6
Firma
AMD
1998
Microprocesorul K6-2 3D
Firma
INTEL
1998
Microprocesorul Mendocino 333/MHz
Firma
INTEL
1999
Microprocesorul Pentium III/600MHz
1
0
2
Firma
AMD
1999
Microprocesorul Athlon/K7

13.01.2004

18 / 39

Capitolul 1 - Structuri si arhitecturi de calculatoare numerice

2000

Firma AMD

Microprocesorul Sharptooth/K6-3

1.3. Evolutia CN din punct de vedere al Sistemelor de operare

Sistemul de operare (SO) n calitate de programe cu care se


asigura gestionarea resurselor unui sistem de calcul orienteaza un
calculator catre un anumit tip de prelucrare. Din punctul de vedere al
modului n care un SO gestioneaza resursa timp a UCP pot fi
identificate urmatoarele tipuri de prelucrari:
- procesarea pe loturi (batch processing);
- multiprogramarea (multiprogramming);
- divizarea timpului (time sharing);
- multiprocesarea (multiprocessing).
Prelucrarea pe loturi implica executia aplicatiilor pe rnd,
conform unei programari anterioare; pentru fiecare aplicatie existnd
succesiunea intrare, prelucrare, iesire.(fig. 1-4 a);
Multiprogramarea presupune ca la un moment dat mai multe
aplicatii pot fi active n diverse faze (fig. 1-4 b).
Divizarea timpului implica repartizarea timpului UCP diverselor
aplicatii (fig. 1-5).
Multiprocesarea presupune existenta mai multor unitati de
prelucrare (procesoare) conectate ntre ele si care executa una sau mai
multe aplicatii n tandem. Scopul multiprocesarii este acela de a mari
viteza de executie si de a creste puterea de calcul.
Se vor exemplifica n fig. 1-4 primele trei tipuri de prelucrari
pentru trei aplicatii (procese) P1, P2, P3 fiecare proces fiind vazut n
timp ca o succesiune de trei etape si anume: intrare (i), calcul
(c)iesire (o).

13.01.2004

19 / 39

Capitolul 1 - Structuri si arhitecturi de calculatoare numerice

a
i1

c1 o1
P1

i2

c2 o2
P2

i3

c3 o3
P3

i1

c1

o1

i2

c2
i3

c1

i1

c2

i2 o1/i3

o2
c3

o3

c3

o2

UCP

o3

I/E

Fig. 1-4. Prelucrarea pe loturi (a) si multiprogramarea (b).

n cazul prelucrarii pe loturi (fig. 1-4 a) procesele se executa succesiv,


operatiile de calcul alternnd cu cele de I/E si prin urmare UCP nu este
folosita eficient.
n cazul multiprogramarii (fig. 1-4 b), n acelasi interval de timp pot fi
active mai multe procese, accesul la resurse (memorie, sistemele de I/E,
UCP) fiind diferential. Se observa ca unele procese necesita la un moment
dat calcule si solicita UCP, n timp ce altele necesita derularea unor operatii
de I/E, deci executia poate avea loc simultan. Multiprogramarea presupune

13.01.2004

20 / 39

Capitolul 1 - Structuri si arhitecturi de calculatoare numerice

ntreteserea executiei proceselor printr-o mai buna utilizare a resurselor si


conduce la un timp de executie mai mic (cstigul de timp este notat cu ).
n situatia n care procesele au atribuite prioritati se poate ntmpla ca
un proces cu prioritate mare sa ocupe UCP un timp mai ndelungat,
mpiedicndu-se n acest fel executia altor procese. Neajunsul poate fi
nlaturat folosind un SO cu divizarea timpului, ceea ce presupune alocarea
din timpul UCP a unor intervale prestabilite de timp pentru executia fiecarui
proces, procedeu ilustrat n fig. 1-5.
P1
P2

i3 c3

c3 o3

c3

i2 c2

c2 o2

P3

i1 c1

c1

c1 o1
UCP

c3 c2 c1 c3 c2 c1 c3 c1
i3 i2 i1

o2

I/E

o3 o1

Fig. 1-5. Repartizarea n timp a desfasurarii proceselor (time sharing)

Se observa ca fiecare proces primeste succesiv controlul UCP. Si n


acest caz utilizarea UCP este eficienta. Procedeul este recomandabil si
atunci cnd se lucreaza pe un sistem de calcul terminale si fiecare utilizator
interactioneaza cu calculatorul aproape instantaneu, crendu-se impresia
existentei cte unui procesor pentru fiecare utilizator (procesor virtual).
1.4. Arhitecturi de calculatoare numerice
Dupa cum s-a mentionat cvasitotalitatea calculatoarelor realizate pna
n prezent se bazeaza pe arhitectura propusa de von Neumann..
ntr-un articol publicat n 1947 von Neumann, e expus cerintele
urmatoare care sunt respectate de catre toate masinile (M) realizate pna n
prezent.

13.01.2004

21 / 39

Capitolul 1 - Structuri si arhitecturi de calculatoare numerice

1. M sa posede un mediu de intrare prin intermediul caruia sa poata fi


introdus un numar practic nelimitat de date si de instructiuni.
2. M sa posede o memorie unde sa fie depusi operanzii si
instructiunile si de unde sa poata fi preluate rezultatele n ordinea dorita.
3. M sa posede o sectiune de calcul care sa fie capabila sa execute
operatii aritmetice si logice asupra datelor din memorie.
4. M sa posede un mediu de iesire prin intermediul caruia sa poata fi
comunicat utilizatorului un numar practic nelimitat de rezultate.
5. M sa posede o unitate de comanda capabila sa interpreteze
instructiunile citite din memorie si pe baza informatiilor furnizate de catre
sectiunea de calcul sa fie capabila sa decida ntre mai multe variante de
desfasurare a operatiilor.
6. Datele si instructiunile sa fie stocate n memorie sub aceiasi forma.
Pe baza acestor cerinte poate fi realizat modelul functional al unui CN
din fig. 1-6.
Unitatea de
control

Memoria
Unitate logica
si aritmetica

Dispozitiv
de intrare

Acumulator

Dispozitiv
de iesire

Fig. 1-6. Modelul functional al masinii lui John von Neumann.

Evident conform cerintelor formulate de von Neumann att datele ct


si instructiunile se gasesc ntr-o unica memorie.
O contributie importanta la dezvoltarea stiintei calculatoarelor a avut-o
matematicianul englez Alan Turing care n 1936 legat de conceptul de
numere calculabile a sintetizat un automat matematic abstract capabil sa
opereze cu astfel de numere. (Numerele calculabile sunt acele numere a
caror parte zecimala se poate determina cu un numar finit de iteratii).
Automatul a fost sintetizat pe baza urmatoarelor ipoteze:
a) automatul are un numar n finit de stari;

13.01.2004

22 / 39

Capitolul 1 - Structuri si arhitecturi de calculatoare numerice

b) automatul se afla n orice moment ntr-o stare i , unde 1 i n,


urmnd ca la momentul imediat urma tor sa se afle ntr-o stare j,
unde 1 j n;
c) fiecare dintre cele n stari este caracterizata prin urmatoarele
informatii:
c1) valoarea caracteristicii ei , care este o valoare curenta a
numarului care se calculeaza;
c2) functia f j care aplicata starii ei permite obtinerea urmatoarei
stari ej ;
c3) deplasamentul d ij care va trebui aplicat numarului pentru a se
realiza tranzitia din swtarea i n starea j, respectiv j = i + dij .
Pentru modelul sau abstract Turing a propus modelul functional din fig.
1-7.
P

C S

SR

Fig. 1-7. Modelul functional al


masinii Turing:
SR sistem reprezentor; P
procesor; C/S cap de citire /
scriere.

Sistemul reprezentor (sau memoria matinii) este constituit dintr-o


banda magnetica de lungime infinita (fara capete) mpartita n segmente de
lungime egala, fiecare segment putnd stoca un numar finit de semne.
Procesorul este un circuit secvential cu un numar finit de stari, care
poate executa urmatoarele instructiuni (care practic se constituie n setul de
instructiuni al masinii):
- schimba suimbolul de pe banda de la pozitia curenta;
- pozitioneaza capul de citire cu o pozitie la dreapta;
- pozitioneaza capul de citire cu o pozitie la stnga;
- opreste sistemul.
Capul de citire/scriere poate citi respectiv nscrie informatie de pe /pe
banda magnetica.

13.01.2004

23 / 39

Capitolul 1 - Structuri si arhitecturi de calculatoare numerice

Pentru a realiza un calcul cu aceasta masina, se nscriu datele ntr-un


mod convenabil si se descompune algoritmul de calcul n functie de modul
de reprezentare a datelor ntr-o secventa de instructiuni ale masinii. Ultima
instructiune este cea de oprire a masinii, la care banda trebuie sa contina
reultatul calculului.
Referitor la clasificarea diverselor tipuri de arhitecturi, (generate din
arhitectura de baza von Neumann) s-au impus atentiei doua clasificari si
anume Flinn si Wang.

Clasificarea Flinn (1966)


Din punct de vedere conceptual functionarea unui sistem de calcul
poate fi vazuta ca actiunea unui flux de instructiuni (care reprezinta
programul ) asupra unui flux de date (care reprezinta datele de intrare sau
rezultate partiale).
Clasificarea Flinn, care are vedere gradul de multiplicitate al celor doua
fluxuri, identifica patru tipuri de arhitecturi si anume:
- SISD (Single Instruction Stream Single Data Stream);
- SIMD (Single Instruction Stream Multiple Data Stream);
- MISD (Multiple Instruction Stream Single Data Stream);
- MIMD (Multiple Instruction Stream Multiple Data Stream).
Pentru aceste arhitecturi trei tipuri de componente de sistem
respectiv UC (sectiunea de comanda a unitatii centrale), UP (sectiunea de
prelucrare a unitatii centrale), MM (modulul de memorie), cele doua
fluxuri fiind FD (fluxul de date) respectiv FI (fluxul de instructiuni).
Desi diferite ntre ele cele patru structuri respecta succesiunea
evenimentelor specifice arhitecturii von Neumann. Instructiunile si datele
sunt extrase din memorie, instructiunile sunt decodificate de UC care
trimite secventa de instructiuni catre UP pentru executie.
Arhitectura SISD care corespunde structurii din fig. 1-8,
realizeaza o executie secventiala a instructiunilor. De exemplu o nmultire
cu o constanta 3 a 100 de numere implica aducerea pe rnd din memorie a
celor 100 de numere si nmultirea lor cu respectiva constanta, fiecare
rezultat fiind trimis n memorie pe masura efectuarii calculului.
Principalul neajuns al acestei arhitecturi consta n viteza de
procesare care la rndul ei este determinata de fracventa ceasului. Este
evident ca nici o realizare tehnologica nu va putea face perioada ceasului

13.01.2004

24 / 39

Capitolul 1 - Structuri si arhitecturi de calculatoare numerice

nula. n consecinta modul strict secvential de tratare a operatiilor impus de


arhitectura von Neumann plafoneaza la un moment dat viteza de procesare.
Aceasta situatie este cunoscuta sub numele gtul sticlei lui Neumann
(Neumann Bottleneck)
SI

SI
UC

SD
MM

UP

Fig. 1-8. Arhitectura SISD.

Spargerea acestei limitari se realizeaza prin introducerea


arhitecturilor de tip neserial (respectiv arhitecturile paralele).
Arhitectura SIMD, care corespunde structurii din fig. 1-9 prezinta
urmatoarele caracteristici:
- exista mai multe UP, sub forma procesoarelor de date, datorita
fluxului de date multiplu, preluat din memoria partajata MP;
- exista o singura UC, sub forma procesorului de instructiuni, care
supervizeaza procesoarele UP;
- toate UP primesc setul unic de instructiuni si proceseaza fiecare un
anume flux de date (UPi proceseaza SD i );
- masinile SIMD pot efectua procesari pe cuvnt (word-slice) sau pe
bit (bit slice).
SD1
UP1
SI

SI

MM 1
SD2

UP2

MM 2

UP1
MP

SDn
UPn

MM n

Fig. 1-9. Arhitectura SIMD.

13.01.2004

25 / 39

Capitolul 1 - Structuri si arhitecturi de calculatoare numerice

Considernd exemplul precedent cele 100 de numere vor fi


nmultite simultan cu constanta 3 iar rezultatele vor fi stocate n
partitiile MMi ale memoriei. Aceste tipuri de masini lucreaza foarte bine
pe seturi de date formate din matrice de dimensiuni foarte mari atunci cand
asupra fiecarei date este necesar a se efectua aceiasi operatie.
Principala limitare a masinilor SIMD este de natura economica
deoarece ariile de procesoare nu sunt componente standard si prin urmare
aceste masini sunt unicate ai costa foarte mult.
Arhitectura MISD, numita macro-pipe-line, corespunde structurii
din fig. 1-10 si prezinta urmatoarele caracteristici:
- fiecare UC lucreaza cu sirul propriu de instuctiuni SI1 , SI2 , SIn ;
- fiecare UP primeste instructiuni diferite, nsa opereaza asupra
aceluiasi sir de date SD (care suporta n consecinta mai multe prelucrari).
SD

SI1

SI1
UC1

UP1
MP
MM 1

MM n

SIn

SIn
UCn

UPn

Fig. 1-10. Arhitectura MISD.

Desi aceasta masina este posibil de realizat din punct de vedere


teoretic, nu a fost niciodata fabricata n scop comercial, avnd n
prezent doar o valoare teoretica..
Arhitectura MIMD, corespunde structurii din fig. 1-11, si
realizeaza o prelucrare paralela prin lansarea n executie a mai multor
instructiuni n acelasi timp pe diferite seturi de date. n afara
elementelor prezentate n fig. 1-11 sunt necesare elemente aditionale de
control care sa repartizeze instructiunea corecta si data care trebuie la
procesorul ales (simultan la toate procesoarele).

13.01.2004

26 / 39

Capitolul 1 - Structuri si arhitecturi de calculatoare numerice

SI1

SI1

SD1

UC1
SIn

MM 1

UP1

MP

SDn

SIn

MM n

UPn

UCn
SIn

Fig. 1-11. Arhitectura MIMD.

Principial exista doua tipuri de arhitecturi MIMD si anume:


- shared memory (intrinseci) daca spatiul de memorie este
accesat n comun de toate cele n procesoare;
- shared nothing (independente) daca fiecare procesor are
propria memorie.
n cazul sistemlore MIMD shared memory, fig. 1-12, masina
originala von Neumann a fost extinsa prin includerea cte unei
memorii locale ML asociate fiecarui procesor memorie cache.
Aceasta memorie permite fiecarui procesor sa aiba acces rapid la la
cele recente instructiuni si date referite, dar n acelasi timp sa poata
accesa n continuare memoria principala prin magistrala de memorie.
Memorie partajata
Magistrala de memorie

ML

ML

ML

ML

Procesor

Procesor

Procesor

Procesor

Retea
Fig. 1-12. Arhitectura MIMD shared memory.

13.01.2004

27 / 39

Capitolul 1 - Structuri si arhitecturi de calculatoare numerice

Observatie. La aceasta arhitectura gtul sticlei (bottleneck) este


reprezentat de magistrala de memorie. La un numar redus de procesoare
performantele cresc liniar cu numarul acestora, dupa care cresterea este din
ce n ce mai lenta (fig. 1-13).
Performante

Ideal
Real

Fig. 1-13. Limitarea performantelor


la masinile MIMD shared memory

2 4 6 8 10 12 14 16 18 20 22 24 26

Numar de procesoare

n cazul sistemelor MIMD shared nothing, fig. 1-14, fiecare


procesor are propria lui memorie, masinile fiind practic calculatoare
independente (noduri) legate ntr-o retea.

Memorie

Memorie

Memorie

Memorie

Procesor

Procesor

Procesor

Procesor

Retea
Fig. 1-14. Arhitectura MIMD shared nothing.

Clasificarea Wang (1972)


Aceasta clsificare presupune o organizare matriceala a datelor. O
matrice de dimensiune mxn presupune existenta a m cuvinte, fiecare cuvnt
cu lungimea de n biti (fig. 1-15).

13.01.2004

28 / 39

Capitolul 1 - Structuri si arhitecturi de calculatoare numerice

Fig. 1-15. Organizarea datelor ntr-o matrice.

n
Criteriul este reprezentat de gradul de paralelism n procesarea
datelor organizate matriceal. Conform acestui criteriu exista patru tipuri de
arhitecturi si anume:
- WSBS (Word Serial Bit Serial) se lucreaza pe un singur
cuvnt, fiecare cuvnt fiind prelucrat bit cu bit, respectiv ns1, ms1;
- WSBP (Word Serial Bit Paralel) se lucreaza pe un singur
cuvnt, bitii fiecarui cuvnt fiind prelucrati simultan, respectiv
n>1, ms1;
- WPBS (Word Paralel Bit Serial) se lucreaza pe un singur bit
la toate cuvintele simultan, respectiv ns1, m>1;
- WPBP (Word Paralell Bit Paralel) se lucreaza simultan pe
toate cuvintele si pe toti bitii fiecarui cuvnt fi, respectiv n>1,
m>1
Structura WPBP este complet paralela fiind orientata pe prelucrari de
matrice mxn, n timp ce structurile WSBP si WPBS sunt partial paralele
fiind orientate pe prelucrari vectoriale (WSBP orizontala 1xn, WPBS
verticala mx1). n ceea ce priveste arhitectura WSBS aceasta nu are
elemente de paralelism.
1.5. Structura unui calculator numeric
Majoritatea calculatoarelor moderne respecta structura definita n
1947 de von Neumann. Notele specifice sunt date de tehnologia de
realizare, modalitatile de conectare a elementelor componente,
performantele realizate.
n fig. 1-16 se prezinta o structura specifica marii majoritati a
calculatoarelor actuale, structura n care pot fi evidentiate urmatoarele
elemente:
Unitatea Centrala de Prelucrare (UCP);
Memoria (M);
Dispozitive de Intrare (DI);

13.01.2004

29 / 39

Capitolul 1 - Structuri si arhitecturi de calculatoare numerice

Dispozitive de iEsire (DE).


M
Magistrala de date

UCP

Magistrala de adrese
Magistrala de comenzi

DI+DE
Fig. 1-16. Schema bloc a unui calculator.

Liniile de comunicatie ntre cele patru module sunt grupate n


magistrale. Informatia vehiculata date, adrese si semnale de comanda,
astfel nct n structura calculatorului exista trei magistrale, respectiv:
magistrala de date;
magistrala de adrese;
magistrala de comenzi.
Unitatea centrala de prelucrare (UCP) reprezinta nucleul unui
calculator, asigurnd practic executia programelor stocate n memorie. Cele
trei componente importante care asigura disponibilitatile UCP sunt:
Unitatea de Comanda (UC);
Unitatea Aritmetica si Logica (UAL);
Registrele Generale (RG).
Unitatea de Comanda aduce instructiunile di memorie, determina
tipul lor dupa care descompune fiecare instructiune ntr-o secventa de faze.
Fiecare faza este caracterizata de un set de microcomenzi a caror finalitate
este reprezentata de efectuarea unor operatii elementare n unitatile de
executie ale UCP respectiv registre, UAL, memorie, interfete de intrare /
iesire.
Dupa cum se observa din fig. 1-17, n care se prezinta structura UCP,
unitatea de comanda contine mai multe module care fac posibila realizarea
functiilor sale.

13.01.2004

30 / 39

Capitolul 1 - Structuri si arhitecturi de calculatoare numerice

Registrul de Instructiuni (RI) pastreaza codul instructiunii n curs


de executie.
Numaratorul de Program (NP) contine adresa instructiunii
curente.
Registrul de Stare (RS) este format dintr-un set de bistabile de
stare care contin informatii legate de modul de executie a instructiunilor
(validarea ntreruperilor, executia pas cu pas, etc.), rezultatele operatiilor
aritmetice si logice (depasire de cxapacitate de reprezentare, transport spre
rangul superior, etc.), sau informatii legate de continutul anumitor registre
(par sau impar, zero, etc.).

UCP
UC
GF

GT

RI

DI+BCC

NP
RS

UAL
RG
AC
R1

Rn

Magistrala sistem

13.01.2004

31 / 39

Fig. 1-17. Structura


UCP

Capitolul 1 - Structuri si arhitecturi de calculatoare numerice

Blocul Circuitelor de Comanda (BCC) semnalele de comanda


(specifice tipului unei instructiuni, fazei curente si informatiei de stare)
necesare executiei instructiunilor.
Generatorul de Tact (GT) genereaza semnalul de tact (a carui
frecventa determina viteza de lucru) pentru functionarea sincrona a
ntrgului calculator.
Generatorul de Faze (GF) creeaza succesiunea specifica de faze
care compun o instructiune. Faza urmatoare este determinata de faza
curenta, tipul instructiunii si informatia de stare din UCP.
Unitatea Aritmetica si Logica (UAL) executa totalitatea operatiilor
aritmetice (adunare, scadere, nmultire, mpartire) si logice (Si, SAU, NU,
SAU EXCLUSIV, etc.). O importanta aparte pentru UAL prezinta registrul
acumulator AC, care de multe ori este tratat ca facnd parte din aceasta.
Registrele Generale (RG) pastreza date cu care lucreaza programul n
executie, avand rolul unor locatii de memorie rapida. Registrul acumulator
este implicat n toatalitatea operatiilor efectuate de UAL pastrnd unul din
operanzi si rezultatul.
Memoria (M) sistemelor de calcul are rolul de a pastra informatia
(programe sau date) utilizata de UCP sau dispozitivele periferice.
Cantitatea minima de informatie care poate fi memorata de
calculator este de un bit (binary digit). Informatia de un bit corespunde
probabilitatii de realizare a unui eveniment dintr-un cmp de doua
evenimente echiprobabile. Un bit poate exprima o cifra binara (0 sau 1) sau
o conditie logica (adevarat sau fals). Din punct de vedere fizic un bit
poate fi reprezentat printr-un nivel de tensiune (nalt sau cobort), starea de
magnetizare sau nu a unei mici portiuni de pe suprafata unui disc magnetic,
transparenta sau opacitatea unui punct de pe un disc optic etc.
Deoarece msanevrarea informatei la nivel de bit este greoaie, uzual se
utilizeaza multipli ai acestuia:
1 octet = 1 Byte = 8 bit;
1 Koctet = 1 KB = 1010 octet = 1024 octet (Byte);
1 Moctet = 1 MB = 1010 KB = 1024 KB;
1 Goctet = 1 GB = 1010 MB = 1024 MB;
1 Toctet = 1 TB = 1010 GB = 1024 GB.

13.01.2004

32 / 39

Capitolul 1 - Structuri si arhitecturi de calculatoare numerice

De regula memoria unui sistem este organizata n cuvinte a cte un


octet.
n functie de informatia pastrata memoria poate fi organizata ca
memorie principala (intern, operativa) sau ca memorie secundara
(externa, auxiliara). n capitolul 5 dedicat prezentarii subsistemului
memorie, aceasta va fi abordata n cadrul unei structuri ierarhice.
Memoria principala (MP) contine informatia n curs de prelucrare
cum ar fi programul n executie si date cu care opereaza acesta. Pentru a se
realiza o viteza ridicata de transfer MP este conectata direct la magistralele
sistemului (fig. 1-18). Adresa locatiei referite este pastrata n Registrul de
Adrese (RA), iar datele citite/scrise din/n memorie se pastreaza n
Registrul de Date (RD). RA si RD vor mai fi ntlnite si la microprocesoare
ca registre tampon. Prezenta lor este absolut necesara deoarece magistralele
nu trebuie retinute pe toata durata transferului n/din memorie.
Circuitele de control ale memoriei (CCM) genereaza semnalele de
selectie si comanda a modulelor de memorie.

RA

Circuite de
memorie

RD

CCM

Magistrala de date
Magistrala de adrese
Magistrala de comenzi
Fig. 1-18. Schema bloc a unei unitati de memorie.

13.01.2004

33 / 39

Capitolul 1 - Structuri si arhitecturi de calculatoare numerice

MP este realizata n diverse tehnologii cum ar fi: circuite


semiconductoare (RAM, ROM, EPROM), inele de ferita, bule magnetice,
etc.
n continuare prin memorie sau unitate de memorie vom denumi
implicit memoria interna. Numai n anumite cazuri, care vor fi precizate n
momentul referirii, prin memorie vom ntelelege ntregul spatiu sau suport
de memorare al unui sistem respectiv memoria interna si memoria externa.
Memoria secundara (MS) este constituita din suporturile aferente
unor dispozitive periferice care asigura o viteza de transfer ridicata, dar
mult mai mica dect viteza de lucru a memoriei principale. Aceasta
diferenta de viteza este compensat de un decalaj de capacitate, net n
favoarea memoriei secundare. Dintr-un anumit punct de vedere se poate
considera ca MS are practic o capacitate nelimitata (de exemplu capacitatea
memoriei realizate pe discuri optice depinde de dimensiunea arhivei de
discuri, respectiv de numarul discurilor utilizate ca suport de memorare.
n continuare se vor face scurte consideratii referitoare la principalele
tipuri de suporturi.

Banda magnetica-magnetic tape (MT) a fost printre primele


suporturi utilizate ca memorie secundara. MT reprezinta practic o panglica
confectionata dintr-un material plastic numit mylar care este acoperit cu un
material magnetic. Informatia este organizata pe 9 piste longitudinale dintre
care 8 pentru date si una pentru bitul de paritate transversala, citirea si
scrierea datelor fiind realizate de catre noua capete magnetice (fig. 1-19).
Piste de date
Organizarea
unui octet

1 2 3 4 5 6 7 8 9

Capete de
citire/scriere

Gap
Fig. 1-19. Organizarea informatiei pe
banda magnetica

13.01.2004

34 / 39

Capitolul 1 - Structuri si arhitecturi de calculatoare numerice

Gruparea de 9 biti se numeste cadru, mai multe cadre sunt grupate


ntr-o nregistrare fizica, iar doua nregistrari fizice sunt separate printr-un
gap.
Densitatea de nregistrare se exprima n bpi (byes per inch)si
reprezinta numarul de cadre pe inch (valori tipice 6250 si 12500 bpi). O
nregistrare fizica (bloc) poate contine ntre 80 B si 64 KB, dintre care
primii 4 octeti contin numarul blocului si lungimea informatiei utile.
n cazul benzii magnetice accesul este secvential iar cantitatea
minima de informatie ce se poate transfera printr-o operatie de citire/scriere
este cea continuta ntr-o nregistrare fizica. Accesul secvential presupune
citirea tuturor nregistrarilor situate ntre cea curenta si cea referita, cu
consecinte directe asupra timpului de acces care nu este constant ci poate
varia ntre fractiuni de secunda si sute de secunde.
Cu toata aceasta viteza redusa, banda magnetica este utilizata pentru
pastrarea unor arhive de date (de exemplu salvarile de date care se fac
periodic n sistemele informatice backup).

Discul magnetic rigid hard disk (HD) este format dintrun disc din metal cu diametrul ntre 5 si 10 acoperit cu material magnetic
pe una sau ambele fete. Mai multe discuri fixate pe un ax formeaza o pila
de discuri (fig. 1- 20).
Carucior cu capete de citire - scriere

Pila de discuri

Sectoare pe o pista
Pista 0
Pista n-1
Cilindru

Fig. 1-20. Structura principiala a unui disc rigid si


organizarea informatiei pe disc.

13.01.2004

35 / 39

Fante (perforatii )
de sincronizare

Capitolul 1 - Structuri si arhitecturi de calculatoare numerice

Pe fiecare disc informatia este organizata pe un numar de cercuri


concentrice numite piste. Pistele cu acelasi diametru de pe toate discurile,
formeaza un cilindru. Pistele sunt mpartite n sectoare, care reprezinta
blocurile fizice n care se codifica datele. Un sector are un identificator,
respectiv un numar unic prin care sectorul este referit. Un disc contine ntre
40 si cteva sute de piste, o pista contine ntre 10 si 100 de sectoare, iar un
sector ntre 128 si 1024 de octeti (tipic 512).
O unitate de HD cu n discuri contine un carucior cu 2n capete de
citire/scriere (CCS) care se deplaseaza radial de la o pista la alta. Prin
rotatia discurilor se formeaza o perna de aer ntre capete si suprafata
magnetica, astfel nct citirea/scrierea se efectueaza fara contact direct ntre
cele doua elemente. Un parametru important al unei unitati de HD este
timpul de acces la disc format din:
timpul de cautare timpul n care CCS ajung la o anumita pista;
ntrzierea de rotatie timpul n care CCS gaseste un sector pe

pista curenta (la o viteza de 360 rot/min aceasta ntrziere este


de maximum 16,7 msec);
timpul de transfer date timpul n care se transfera un sector.
Un transfer se specifica prin urmatoarele elemente:
a. cilindrul si capul de scriere/citire care mpreuna identifica o pista
unica;
b. numarul sectorului unde ncepe blocul ce vafi transferat;
c. numarul de cuvinte transferate;
d. adresa de nceput a zonei din memorie unde/de unde se va efectua
transferul;
e. tipul operatiei (citire sau scriere).
Pilele de disc formeaza un asa numit hard-disk, disk dur sau disk rigid.
Cel mai utilizat model este discul Winchester, format dint-o pila de disc
ncapsulata, cu capacitati uzale de zeci de GB.
Discul magnetic flexibil floppy disk (FD) este format dintr-un
disc flexibil din mylar acoperit cu un material magnetic. Spre deosebire de
discul dur, capetele sunt n contact permanent cu suprafata discului n
timpul operatiilor de citire/scriere. Contactul direct permite o densitate mai
mare de nregistrare, n conditiile nsa ale unor viteze, fiabilitati si durate de
exploatare mai reduse.

13.01.2004

36 / 39

Capitolul 1 - Structuri si arhitecturi de calculatoare numerice

Astazi cele mai rasndite sunt discurile (disketele) cu diametul de


3,5 care prezinta urmatoarele caracteristici:
- 1,44 MB capacitate de stocare;
- 80 de piste;
- 18 sectoare pe pista;
- 2 capete de citire/scriere;
- 300 rot/min viteza de rotatie;
- 500 Kbps rata de transfer.

Discul optic este realizat pe baza acelorasi principii ca


discul compact audio si se numeste CD ROM Compact Disk Read Only
Memory. Suportul este constituit dintr-un disc metalic lustruit, fara
proprietati magnetice, acoperit cu un strat in materia plastic care poate
stoca pna la 640 MB informatie.Informatia este nregistrata pe o pista
continua n spirala (fig. 1-21) fiind citita secvential. Procesul de nscreiere a
informatiei presupune efectuarea cu ajutorul unei raze laser a mici gauri
(pits) cu dimensiuni de ordinul micronilor n suportul metalic. Citirea
discului se face tot optic cu ajutorul unei surse lase si a unui sistem de
oglinzi. Un detector masoara energia razei la ser reflectate, interpretnd
astfel informatia nscrisa pe disc.
Spirala

Gauri (pits)

Disc de plastic
Fig. 1-21. Formatul discului optic CD-ROM.

Informatia este organizata pe blocuri, fiecare bloc continnd mai


multe grupe de octeti.
n momentul actual sunt accesibile si discurile WORM (Write Once
Read Many times) care permit o singura anscriere si oricte citiri. Ele se

13.01.2004

37 / 39

Capitolul 1 - Structuri si arhitecturi de calculatoare numerice

deosebesc principial de CD-ROM n sensul ca acestea din urma sunt


nscrise prin procesul de fabricatie. Exista si CD-RW (Compact Disc
ReWritable), compact disc cu renscriere la care nscrierea este magnetica
iar citirea optica.
Performantele discurilor optice apropie momentul cnd acestea vor
nlocui dischetele n sensul operarii on-line, ntr-o unica unitate similara
FDD.
Dispozitive de intrare/iesire (DIE). Acestea asigura introducerea
si extragerea informatiei n/din calculator. Numite si Dispozitive Periferice
(DP) acestea pot ndeplini mai multe categorii de functii cum ar fi:
comunicarea dintre calculator si utilizatorul uman, comunicarea ntre
calculatoare, legatura cu procese reale etc.
DIE se conecteaza la unitatea centrala prin intermediul interfetelor
de intrare/iesire (fig. 1-22), a caror complexitate variaza foarte mult de la
simple registre pna la controlere inteligente realizate cu microprocesor.
Din punctul de vedere al sistemului de operare DIE sunt vazute ca fisiere
iar interfetele n calitate de canale de comunicatie.
Magistralele sistemului

Interfata de

Interfata de

intrare/iesire

intrare/iesire

DIE

DIE

DIE

DIE

Fig. 1-22. Conectarea dispozitivelor periferice la magistralele de


sistem.

13.01.2004

38 / 39

Capitolul 1 - Structuri si arhitecturi de calculatoare numerice

Dispozitive de iesire. Din punctul de vedere al suportului folosit


pentru vizualizarea informatiei extrase din calculator exista doua tipuri
de dispozitive de iesire:
dispozitive hardcopy exemplu: imprimante cu ace, laser,
cu jet de cerneala, termica; plotterele cu penita sau
electrostatic - creeaza imaginea fixa, stabila pe un suport
fizic cum ar fi hrtia sau folia de plastic;
dispozitive de afisare exemplu: dispozitive cu tub catodic
monocrom sau color (CRT), tuburile cu memorare directa
(DVST), dispozitivele de afisare cu cristale lichide (LCD),
ecrane cu plasma, dispozitive de afisare electroluminiscente
sunt caracterizate de o anumita frecventa de
remprospatare a imaginii pe un ecran, putndu-se obtine si
efecte dinamice.
Dispozitive de intrare. Servesc la introducerea datelor sub diverse
forme n sistem. Exista sase dispozitive logice de introducere a datelor
grafice si anume: locator (locator), flux (stroke), optiune (choise), culegere
(pick), text (text), valoare (valuator). Pentru acestea au fost realizate
dispozitive fizice cum ar fi: tableta grafica, mouse, trackball, joystick,
ecranul senzitiv, creionul optic, butoane, chei, tastatura, valoare.

13.01.2004

39 / 39

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

2. BAZELE ARITMETICE ALE CALCULATOARELOR


NUMERICE
2.1. Introducere
2.2. Sisteme de numeratie, conversii si operatii
2.2.1. Sisteme de numeratie
2.2.2. Conversia unui numar dintr-o baza n alta
2.2.2.1. Metoda substitutiei
2.2.2.2. Metoda mpartirii la / nmultirii cu noua
baza
2.2.3. Operatii aritmetice n binar octal si hexazecimal
2.2.3.1. Operatii aritmetice n SN binar
2.2.3.2. Operatii aritmetice n SN octal
2.2.3.3. Operatii aritmetice n SN hexazecimal
2.3. Reprezentarea numerelor n calculator
2.3.1. Reprezentarea numerelor n virgula fixa
2.3.1.1. Reprezentarea unui numar prin marime si
semn
2.3.1.2. Reprezentarea unui numar n complement
fata de 1 (cod invers)
2.3.1.3. Reprezentarea unui numar n complement
fata de 2 (cod complementar)
2.3.1.4. Reprezentarea n exces
2.3.2. Reprezentarea numerelor n virgula mobila
2.3.3. Coduri numerice si alfanumerice
2.3.3.1. Coduri numerice
2.3.3.2. Coduri alfanumerice
2.3.3.3. Coduri detectoare si corectoare de erori

13.01.2004

1 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

2.4. Operatii aritmetice n virgula fixa


2.4.1. Adunarea si scaderea binara
2.4.1.1. Adunarea si scaderea n cod direct
2.4.1.2. Adunarea si scaderea n cod complementar
2.4.1.3. Adunarea si scaderea n cod invers
2.4.2. nmultirea binara
2.4.2.1. nmultirea n cod direct
2.4.2.2. nmultirea n cod complementar
2.4.2.3. nmultirea cu puteri ale lui 2
2.4.2.4. nmultirea cu mai multe cifre
2.4.3 mpartirea binara
2.4.3.1. mpartirea binara prin metoda compararii
2.4.3.2. mpartirea binara cu refacerea restului
partial
2.4.2.3. mpartirea binara cu refacerea restului
partial
2.5. Operatii aritmetice n virgula mobila
2.5.1. Adunarea si scaderea numerelor reprezentate n
virgula mobila
2.5.2. nmultirea numerelor reprezentate n virgula mobila
2.5.3. mpartirea numerelor reprezentate n virgula mobila
2.6. Operatii aritmetice cu numere zecimale codificate binar
2.6.1. Codificarea binara a numerelor zecimale
2.6.2. Adunarea si scaderea n cod binar-zecimal
2.6.3. nmultirea n cod binar-zecimal
2.6.3.1. nmultirea cu 10k
2.6.3.2. Metoda adunarii repetate
2.6.3.3. Metoda celor noua multipli ai denmultitului
2.6.4. mpartirea n cod binar-zecimal
2.6.4.1. Metoda compararii
2.6.4.2. Metoda refacerii restului partial
2.6.4.3. Metoda fara refacerea restului partial

13.01.2004

2 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

2. BAZELE ARITMETICE ALE CALCULATOARELOR


NUMERICE
Pentru ntelegerea aspectelor legate de structura si functionalitatea
sistemelor numerice de calcul se impune detinerea unor cunostinte ce
privesc att prelucrarea informatiei numerice ct si mijloacele de
implementare.
n acest capitol se prezinta unele aspecte legate de reprezentarea
numerelor si operatii aritmetice specifice calculatoarelor numerice.
2.1. Introducere
Dupa cum s-a aratat resursele importante ale unui calculator numeric
sunt reprezentate de cele de calcul si comanda, memorare , intrare iesire
si comunicatii. n ceea ce priveste memoria interna aceasta este realizata
din dispozitive cu doua stari stabile iar elementele de procesare a
informatiei sunt bazate pe circuite logice care opereaza pe baza logicii
bivalente.
Aceste motive recomanda reprezentarea datelor n binar sub forma
unor succesiuni de unitati si zerouri. Exista numeroase posibilitati pentru
reprezentarea datelor, care difera prin expresibilitate, cost de implementare,
efortul de conversie de la un format la altul, etc.
Calculatoarele contin elemente de stocare a datelor de tipul
registrelor, cu un numar finit de elemente (ranguri) care afecteaza precizia
calculului. Uzual se spune ca reprezentarea este cu precizie finita aspect
care presupune prezenta erorilor de procesare.
Tipurile uzuale de date care se folosesc la nivelul hardware al unui
calculator numeric sunt:
- Bit: 0, 1;
-

Sir de biti: secvente de biti cu urmatoarele lungimi uzuale:


tetrada: 4 biti;

13.01.2004

3 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

octet / byte: 8 biti;


semicuvnt: 16 biti;
cuvnt: 32 biti;
dublu cuvnt: 64 de biti,

Caracter:
ASCII: cod de 7 biti,

Zecimal:
cifrele zecimale 0 9 codificate binar 0000 2 1001 2
(doua cifre zecimale pot reprezentate n doi octeti
sau pot fi mpachetate ntr-un singur octet);

ntreg (Virgula Fixa):


fara semn;
cu semn, reprezentare n:
cod direct (semn si modul);
cod invers (complement fata de unu );
cod complementar (complement fata de doi);

Real (Virgula Mobila):


precizie simpla;
precizie dubla;
precizie extinsa.

2.2. Sisteme de numeratie, conversii si operatii


2.2.1. Sisteme de numeratie
Un sistem de numeratie (SN) este format din totalitatea regulilor de
reprezentare a numerelor cu ajutorul unor simboluri numite cifre.
SN sunt de doua tipuri: pozitionale si nepozitionale. SN pozitionale
mai sunt cunoscute si sub denumirea de SN ponderate ntruct valoarea
unei cifre depinde att de semnificatia sa intrinseca ct si de pozitia
acesteia n respectivul numar. De exemplu, pentru numarul 1111
reprezentat n SN zecimal fiecare cifra 1 are o alta pondere (mii, sute, zeci,
unitati). Un exemplu de sistem nepozitional, n care ponderea nu este
influentata de pozitia cifrei este sistemul roman.
Datorita simplitatii de reprezentare si efectuare a calculelor, n
sistemele numerice se folosesc n exclusivitate sistemele pozitionale, un

13.01.2004

4 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

asemenea sistem fiind caracterizat prin baza care reprezinta numarul total
de simboluri (cifre).
Exemplu de baze uzuale:
Sistemul zecimal, b=10, simboluri: 0,1,2,3,4,5,6,7,8,9;
Sistemul binar, b=2, simboluri: 0,1;
Sistemul octal, b=8, simboluri: 0,1,2,3,4,5,6,7;
Sistemul hexazecimal, simboluri: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F.
Pentru un numar ntreg N0, reprezentarea n baza b este un n
tuplu
N = xn-1 xn-2 . x2 x1 x0 care verifica urmatoarele doua conditii:
a - 0 xi < b, i = n-1,,0; xn-1 0 ;
b - N = xn-1 bn-1 ++ x1 b+ x0.
Exemple
b = 10, N = 4 52310
b = 8, N = 5738
b = 2, N = 1010012

=
=
=

4x103 +5x102 +2x10+3


5x82 +7x8+3
1x25 +0x24 +1x23 +0x22 +0x21 +1.

Numerele reale au o reprezentare asemanatoare, nsa contin punctul


fractionar (sau virgula) care separa partea ntreaga de cea fractionara.
Pentru un numar real r0, reprezentarea n baza b este secventa de
simboluri (m tuplul)
r = xm-1 x1 x0 . x-1 x-2 care verifica urmatoarele relatii:
a - 0 xi < b, i = m-1,,0,-1,-2,; xm-1 0;
b - nu exista un rang k astfel nct ncepnd de la acel
rang xk = xk-1 ==b-1
c - r = xm-1 bm -1 ++ x1 b+ x0 + x-1 b-1 + x-2 b-2 +
Exemple
b=10, N=154.6430 =1x102 +5x10+4+3x10-1 +2x10-2
b=8, N=623.458 =6x82 +2x8+3+4x8-1 +5x8-2
b=2, N=101.0112 =1x22 +0x2+1+0x22 +1x21 +1.
Pornind de la faptul ca la baza realizarii unui sistem numeric de
calcul stau dispozitivele cu doua stari stabile, rezulta ca SN binar (care

13.01.2004

5 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

necesita numai doua cifre, 0 si 1) este cel mai potrivit pentru prelucrarea,
codificarea si transmiterea informatiei n aceste echipamente. SN ale caror
baze reprezinta puteri ale lui 2 prezinta de asemenea proprietatile
sistemului binar, motiv pentru care sunt frecvent utilizate n tehnica de
prelucrare automata a datelor (n special SN octal si SN hexazecimal). n
ceea ce priveste SN zecimal acesta este cu precadere utilizat n anumite
faze ale operatiilor de intrare- iesire.
2.2.2. Conversia unui numar dintr-o baza n alta
ntr-un sistem de calcul datele sunt de regula reprezentate n mai
multe sisteme de numeratie. Astfel datele de intrare si cele de iesire
(rezultatele) sunt de regula reprezentate n baza 10 n timp ce n memorie si
n unitatea de procesare baza de reprezentare este 2.
Sunt situatii n care datele care se prelucreaza se reprezinta n baza
10, cifrele zecimale fiind reprezentate prin tetrade binare. Pentru reducerea
efortului de procesare datele se reprezinta n memorie n bazele 8 sau 16.
Existenta si utilizarea mai multor SN ridica problema conversiei dintr-un
sistem n altul. n continuare vor fi prezentate doua metode frecvent
utilizate si anume:
a - metoda substitutiei;
b metoda mpartirii la / nmultirii cu baza.
2.2.2.1. Metoda substitutiei
Fie numarul N reprezentat n baza a
N = an-1 n-1 + an-2 n-2 ++ a0 0 + a-1 -1 ++ a-m -m, (2.1)
pentru care se doreste conversia n baza .
Metoda substitutiei presupune scrierea numarului Na n forma
N = (an 1 ) (10 ) + (an 2 ) (10 )
n 1

n 2

L + (a0 ) (10 )0 + (a 1 ) (10)1 L + (a m ) (10 )m

si conversia n baza pentru fiecare cifra (ai )a si (10) a .


Exemple

13.01.2004

6 / 104

(2.2)

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

a. Sa se realizeze conversia n baza 2 a numarului N = (17)16 .


Aplicnd relatia (2.2) se obtine
0
N = (17 )16 = (1)16 (10 )116 + (7 )16 (10 )16

dar

(1)16 = (1)2 , (7 )16 = (111)2 , (10 )16 = (16 )10 = (10 000 )2
n aceste conditii numarul N se va scrie
N = (17 )16 = (1)2 (10000 )2 + (111)2 = (10000 )2 + (111 )2 =

= (10111 )2 = (0001 0111)2

b. Sa se realizeze conversia n baza 2 a numarului N = (54) 8 .


Aplicnd relatia (2.2) se obtine
N = (52 )8 = (5 )8 (10 )18 + (2 )8 (10 )08

dar

(5)8 = (101)2 , (2)8 = (10 )2 , (10)8 = (8)10 = (1000 )2


n aceste conditii numarul N se va scrie
N = (52 )8 = (101 )2 (1000 )2 + (10 )2 = (101000 )2 + (10 )2 =

= (101010 )2 = (101 010 )2

c. Sa se realizeze conversia n baza 10 a numarului N = (25) 8 .


Aplicnd relatia (2.2) se obtine
N = (25 )8 = (2 )8 (10 )18 + (5)8 (10 )08

dar

(2)8 = (2)10 ,(5)8 = (5)10 , (10)8 = (8)10


n aceste conditii numarul N se va scrie
N = (25 )8 = (2 )10 (8 )10 + (5)10 = 2 8 + 5 = (21)10

13.01.2004

7 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

d. Sa se realizeze conversia n baza 10 a numarului N = (10100) 2 .


Aplicnd relatia (2.2) se obtine
N = (10100 )2 = (1)2 (10 )42 + (0 )2 (10 )32 + (1)2 (10 )22 +
+ (0)2 (10 )12 + (0 )2 (10 )02 =1 2 4 + 1 2 2 = (20 )10

dar

(2)8 = (2)10 ,(5)8 = (5)10 , (10)8 = (8)10


n aceste conditii numarul N se va scrie
N = (25 )8 = (2 )10 (8 )10 + (5)10 = 2 8 + 5 = (21)10

e. Sa se realizeze conversia n baza 10 a numarului N =


(BF4.15) 16 .
Aplicnd relatia (2.2) se obtine
2
0
N = (BF 4 .15 )16 = (B )16 (10 )16
+ (F )16 (10 )116 + (4 )16 (10 )16
+
1
2
+ (1)16 (10 )16
+ (5)16 (10 )16

dar

(B )16 = (11)10 , (F )8 = (15 )10 , (4 )16 = (4 )10 ,


(1)16 = (1)10 , (5 )16 = (5 )10 , (10 )16 = (16 )10
n aceste conditii numarul N se va scrie
2
N = (BF 4.15 )16 = (11)10 (16 )10
+ (15 )10 (16 )110 +
0
1
2
+ (4 )10 (16 )10
+ (1)10 (16 )10
+ (5)10 (16 )10
=

11 256 + 15 16 + 4 +1 0 .0625 + 5 0.00390625 =


= 2816 + 240 + 4 + 0.0625 + 0 .01953125 = (3060 .08203125 )10

13.01.2004

8 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

Din analiza exemplelor a si b se desprinde concluzia ca din bazele


care sunt puteri ale lui 2 conversia se poate realiza mecanic nlocuind
cifrele numarului cu combinatiile binare corespunzatoare. n Tabelul 2.1 se
prezinta combinatiile binare pentru cifrele sistemului octal (triade)
respectiv hexazecimal (tetrade).
Tabelul 2.1
Octal
0
1
2
3
4
5
6
7

Binar
000
001
010
011
100
101
110
111

Hexazecimal
0
1
2
3
4
5
6
7

Binar
0000
0001
0010
0011
0100
0101
0110
0111

Hexazecimal
8
9
A
B
C
D
E
F

Binar
1000
1001
1010
1011
1100
1101
1110
1111

n ceea ce priveste conversia din binar ntr-o baza putere a lui 2


aceasta se poate realiza tot mecanic. n continuare se va exemplifica
procedeul pentru conversiile binar octal si binar hexazecimal.
Conversia binar - octal
Fie
r = xmxm-1 x1 x0 . x-1 x-2
reprezentarea binara a unui numar real r oarecare.
Acelasi numar scris ca o combinatie liniara a puterilor lui 2 este:
r = xm 2m+xm-1 2 m-1 +x1 2+x0 +x-1 2-1 +x-2 2-2 +.. .
Deoarece o cifra octala se reprezinta printr-o grupare de trei biti,
grupam expresia n triade:
r = (x3k+2 23k+2 + x3k+1 23k+1 + x3k 23k )+.
+ (x2 22 + x1 2 + x0 ) + (x-1 2-1 + x-2 2-2 + x-3 2-3 )+.
sau
r = 23k (x3k+2 22 + x3k+1 2 + x3k 2)+.
+ (x2 22 + x1 2 + x0 ) + 2-3 (x-1 22 + x-2 2 + x-3 )+.
respectiv

13.01.2004

9 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

r = 8k yk ++ 80 y0 + 8-1 y-1 + cu
0 yi =x3i+2 22 + x3i+1 2 + x3i < 8.
Rezultatul demonstratiei de mai sus permite formularea urmatoarei
reguli de conversie: fiind dat un numar real n forma binara , reprezentarea
sa n octal se obtine grupnd cte trei cifrele binare ncepnd de la marca
fractionara (punct, virgula), spre stnga respectiv dreapta. Dupa ce grupele
extreme se completeaza (daca este cazul cu zerouri nesemnificative),
fiecare triada se nlocuieste cu echivalentul sau octal.
Conversia binar - hexazecimal
Fie
r = xmxm-1 x1 x0 . x-1 x-2
reprezentarea binara a unui numar real r oarecare.
Acelasi numar scris ca o combinatie liniara a puterilor lui 2 este:
r = xm 2m+xm-1 2 m-1 +x1 2+x0 +x-1 2-1 +x-2 2-2 +.. .
Deoarece o cifra hexazecimala se reprezinta printr-o grupare de
patru biti, grupam expresia n tetrade:
r = (x4k+3 24k+3 + x4k+2 24k+2 + x4k+1 24k+1 + x4k 24k )+.
+ (x4 24 + x3 23 + x2 22 + x1 2 + x0 ) +
+ (x-1 2-1 + x-2 2-2 + x-3 2-3 + x-4 2-4 )+.
sau
r = 24k (x4k+3 23 + x4k+2 22 + x4k+1 2 + x4k 2)+.
+ (x3 23 + x2 22 + x1 2 + x0 ) + 2-4 (x-1 23 + x-2 22 + x-3 2 + x-4 )+.
respectiv
r = 16k yk ++ 160 y0 + 16-1 y-1 + cu
0 yi = x4i+3 23 + x4i+2 22 +x4i+1 2 + x4i < 16.
Ca si n cazul precedent, rezultatul demonstratiei de mai sus
permite formularea urmatoarei reguli de conversie: fiind dat un numar real
n forma binara , reprezentarea sa hexazecimala se obtine grupnd cte
patru cifre binare ncepnd de la marca fractionara (punct, virgula), spre
stnga respectiv dreapta. Dupa ce grupele extreme se completeaza (daca
este cazul cu zerouri nesemnificative), fiecare tetrada se nlocuieste cu
echivalentul sau hexazecimal.

13.01.2004

10 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

Dupa cum s-a mai spus, conversiile inverse octal / hexazecimal


binar se realizeaza prin nlocuirea fiecarei cifre octale / hexazecimale cu
triada / tetrada corespunzatoare.
Exemple
a. Sa se converteasca n binar numerele A=(135.72) 8 si
B=(5A23.B5D)16 .
(A)2 = 001 | 011 | 101.111 | 010
(B)2 = 0101 | 1010 | 0010 | 0011.1011 | 0101 | 1101
b. Sa se converteasca n octal si n hexazecimal numarul binar
(C)2 =1011010.11011.
b1. (C)2 = 001 011 010 . 110 110
Pe baza corespondentei din tabelul 2.1 rezulta (C)8 =132.66.
b2. (C)2 =0101 1010 . 1101 1000
dupa care se face corespondenta n conformitate cu Tabelul 2.1 si
rezulta (C)16 =5A.D8.
2.2.2.2. Metoda mpartirii la / nmultirii cu noua baza
Fie numarul real N reprezentat n baza a
N = an-1 n-1 + an-2 n-2 ++ a0 0 + a-1 -1 ++ a-m -m, (2.3)
pentru care se doreste conversia n baza .
Pornind de la reprezentarea numerelor prin intermediul
coeficientilor dezvoltarii polinomiale, n raport cu baza, conversia se poate
realiza prin operatii repetate de mpartire / nmultire la / cu noua baza,
dupa cum se converteste partea ntreaga respectiv cea fractionara.
Deoarece se vor trata separat conversiile partilor ntreaga respectiv
fractionara, numarul se va considera descompus sub forma
N = NI + NF

(2.4)

n care NI si NF sunt partile ntreaga respectiv fractionara ale


numarului real N .

13.01.2004

11 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

Conversia numerelor ntregi


Fie partea ntreaga NI , exprimata n baza , a unui numar real N:
NI

= an-1 n-1 + an-2 n-2 ++ a1 + a0 0 ,

care n baza poate fi exprimata astfel


NI a = xn-1 n-1 + xn-2 n-2 ++ x1 + x0 0 ,
n care coeficientii xi urmeaza a se determina.
Determinarea acestor coeficienti prin metoda mpartirilor succesive
presupune mpartirea repetata a numarului la noua baza si retinerea
resturilor conform procedeului de mai jos.
NI / = xn-1 n-2 + xn-2 n-3 ++ x1 0 + x0 /
Ctul = (N1 )I

x0 ,

Restul

(N1 )I / = xn-1 n-3 + xn-2 n-4 ++ x2 0 + x1 /

x1 ,

Ctul = (N2 )I
Restul
..
(Nk )I / = xn-1 n-k-2 +.+ xn-k-1 0 + xk /
xk

Ctul = (Nk+1 )I
Restul
.
Dupa cum se observa n urma primei mpartiri rezulta x0 , (cifra cea
mai putin semnificativa a rezultatului - CCMPS), apoi x1 s.a.m.d. Procedeul
continua pna cnd ctul devine mai mic dect noua baza , ultimul rest
fiind coeficientul xn-1 , (cifra cea mai semnificativa a rezultatului -CCMS).
Din cele prezentate rezulta ca procesul de determinare a
reprezentarii n noua baza este un proces iterativ cu un numar necunoscut
de pasi la nceputul conversiei, ntruct se utilizeaza drept criteriu de stop
obtinerea unui ct mai mic dect noua baza.

13.01.2004

12 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

Daca baza de plecare este 10, iar conversia se face n baza , atunci
numarul de iteratii, respectiv numarul de cifre n noua reprezentare poate fi
determinat nainte de nceperea conversiei potrivit relatiei
log N + 1 daca N = k , k N

n=
[log N ] + 1 daca N k , k N

(2.5)

Conversia numerelor fractionare


Fie partea fractionara NF , exprimata n baza , a unui numar real
N:
NF

= a-1 -1 + a-2 -2 ++ a-m -m,

care n baza poate fi exprimata astfel


NFa = x-1 -1 + x-2 -2 ++ x-m-m ,
n care coeficientii x-i urmeaza a se determina.
Determinarea acestor coeficienti prin metoda nmultirilor succesive
presupune nmultirea repetata a numarului fractionar cu noua baza si
retinerea partilor ntregi ale produselor conform procedeului de mai jos.
NF x

= x-1 + x-2 -1 +.+ x-m-m+1

x-1 ,

(N1 )F
(N1 )F x
= x-2 + x-3 +.+ x-m-m+2
x-2 ,
(N2 )F
..
(Nk-1 )F x = x-k + x-k-1 -1 +.+ x-m-m+k
x-k ,
-1

(Nk )F
.
Cifra x-1 reprezinta CCMS iar x-k CCMPS a rezultatului. Procedura
se opreste n momentul partea fractionara (Nk)Fa a rezultatului unei
nmultiri devine zero, sau daca s-a atins precizia de conversie specificata.

13.01.2004

13 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

n situatia n care numarul fractionar care se converteste respecta


relatia
NF =

1
k

unde M , k N

(2.6)

atunci numarul se poate exprima n baza , n conditiile unei erori de


conversie nule pe k ranguri.
n situatia n care conditia (2.6) nu este respectata, pentru estimarea
numarului de ranguri asociat rezultatului conversiei partii fractionare a unui
numar se impune eroarea relativa de conversie erel conv care se poate
exprima prin relatia
e rel conv [% ] =

N F N F
N F

100 ,

(2.7)

unde NFa si NF sunt valorile numarului NF exprimate n cele doua


baze.
Pe de alta parte daca numarul convertit n baza are n F ranguri
atunci erel conv se poate exprima ca fiind
e rel conv [% ] =

1
nF

100

(2.8)

relatie din care rezulta numarul minim de ranguri n F ,


log erel conv daca erel conv = k , k N

nF
[ log e rel conv ] + 1 daca e rel conv k , k N

(2.9)

unde
e rel conv =

e rel conv [%]

(2.10)

100

Combinnd relatiile (2.6) si (2.9) rezulta

13.01.2004

14 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

= k daca N F = M k , M , k N

n F ( log erel conv ) daca e rel conv = k , k N


(2.11)

k
([ log e rel conv ] + 1) daca e rel conv , k N

Din prezentarea efectuata rezulta ca numarul de pozitii binare


pentru partea ntreaga se poate determina ntotdeauna cu exactitate apriori,
n timp ce pentru partea fractionara acest lucru este posibil numai daca este
respectata conditia in relatia (2.6).

Exemple
a.
Sa se converteasca n binar numarul N10 = 98.4352 cu o
eroare erelconv < 0.82 % n caz ca nu este respectata conditia (2.6).
1. Se determina numarul de pozitii binare n I necesare pentru
conversia partii ntregi:
Deoarece 98 nu este o putere ntreaga a lui 2
n 1 = [log2 98]+1=[6.6147]+1=7 biti
2. Se converteste partea ntreaga: NI =98
98 = 2 x 49 + 0 ?
a0 = 0
49 = 2 x 24 + 1 ?
a1 = 1
24 = 2 x 12 + 0 ?
a2 = 0
12 = 2 x 6 + 0 ?
a3 = 0
6=2x 3+0 ?
a4 = 0
3 = 2 x 1 + 1?
a5 = 1
1 = 2 x 0 + 1?
a6 = 1
Rezulta pentru partea ntreaga (NI)2 =1100010.
3. Deoarece conditia (2.6) nu este ndeplinita conversia se va face
pe 6 ranguri pentru partea fractionara. si eroarea nu este o putere a bazei 2
rezulta
n F = [-log2 0.0082] + 1 = [6.9301] + 1 = 8 biti
Se converteste partea fractionara (NF)10 =0.4352.

13.01.2004

15 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

0.4352 x 2 = 0.8704
0.8704 x 2 = 1.7408
0.7408 x 2 = 1.4816
0.4816 x 2 = 0.9632
0.9632 x 2 = 1.9264
0.9264 x 2 = 1.8528
0.8528 x 2 = 1.7056
0.7056 x 2 = 1. 4112

?
?
?
?
?
?
?
?

a-1 = 0
a-2 = 1
a-3 = 1
a-4 = 0
a-5 = 1
a-6 = 1
a-7 = 1
a-8 = 1

Rezulta pentru partea fractionara (NF)2 =0.11100000


Pentru numarul N rezulta (N)2 =1100010.01101111.
4. Verificarea se realizeaza procedndu-se la conversia inversa, cu
metodei substitutiei:
(N)10 =
1x26 +1x25 +0x24 +0x23 +0x22 +1x21 +0x20 +0x2-1 +1x2-2 +
-3
-4
+1x2 +0x2 +1x2-5 +1x2-6 +1x2-7 +1x2-8 =64+32+2+0.25+0.125+
+0.03125+0.0015625+0.0078125 = 98.43359375
0.4352 0 .4336
5. erel conv [% ] =
100 = 0 .367 %
0.4352
Observatie
Rezultatul pentru partea zecimala este corect, ntruct s-a procedat
la o rotunjire prin adaos a numarului de ranguri binare pentru aceasta parte.
b.
Sa se converteasca n octal numarul N10 = 234.128 cu o
eroare < 0.42 % n caz ca nu este respectata conditia (2.6).
1. Se determina numarul de pozitii octale n I necesare pentru
conversia partii ntregi:
Deoarece 234 nu este o putere ntreaga a lui 8
n 1 = [log8 234]+1=[2.623]+1=3 cifre
2. Se converteste partea ntreaga: NI =234
234 = 8 x 29 + 2 ?
a0 = 2
29 = 8 x 3 + 5 ?
a1 = 5
3 = 8 x 0 + 3?
a2 = 3

13.01.2004

16 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

Rezulta pentru partea ntreaga (NI)8 =352


3. Deoarece conditia (2.6) nu este ndeplinita ee converteste partea
fractionara (NF)10 =0.128.
0.128 x 8 = 1.024
?
a-1 = 1
0.024 x 8 = 0.192
?
a-2 = 0
0.192 x 8 = 1.536
?
a-3 = 1
Rezulta pentru partea fractionara (NF)8 =0.101
Pentru numarul N rezulta (N)2 =352.101
4. Verificarea se realizeaza procedndu-se la conversia inversa, cu
utilizarea metodei substitutiei:
N10 3x82 +5x81 +2x80 +1x8-1 +0x8-2 +1x8-3 =
= 192+40+2+0.125+0.001953125=234.127
5. erel conv [% ] =

0.128 0.127
100 = 0 .78 %
0.128

c.
Sa se converteasca n baza 4 numarul N10 = 175.1285 cu 6
pozitii n partea zecimala n caz ca nu este respectata conditia (2.6).
1. Se determina numarul de pozitii n I necesare pentru conversia
partii ntregi:
Deoarece 175 nu este o putere ntreaga a lui 4
n 1 = [log4 175]+1=[3.7256]+1=4 cifre
2. Se converteste partea ntreaga: NI =234
175 = 4 x 43 + 3 ?
a0 = 3
43 = 4 x 10 + 3 ?
a1 = 3
10 = 4 x 2 + 2 ?
a2 = 2
2=0x 2+2?
a3 = 2
Rezulta pentru partea ntreaga (NI)4 = 2233

3. Deoarece conditia (2.6) nu este ndeplinita conversia partii


(NF)10 =0.1285 fractionare se va face pe 6 ranguri

13.01.2004

17 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

0.1285 x 4 = 0.514
0.514 x 4 = 2.056
0.056 x 4 = 0.224
0.224 x 4 = 0.896
0.896 x 4 = 3.584
0.584 x 4 = 2.336

?
?
?
?
?
?

a-1 = 0
a-2 = 2
a-3 = 0
a-4 = 0
a-5 = 3
a-6 = 2

Rezulta pentru partea fractionara (NF)4 = 0.020032


Pentru numarul N rezulta (N)4 = 2233.020032
4. Verificarea se realizeaza procedndu-se la conversia inversa, cu
utilizarea metodei substitutiei:
N10 = 2x43 +2x42 +3x41 +3x40 +0x4-1 +2x4-2 +0x4-3 +0x4-4 +3x4-5 +2x4-6 =
= 128+32+12+3+0.125+0.0029296875+0.00048828125=175.1284125
5. erel conv [% ] =

0.1285 0.1284125
100 = 0.0077 %
0.1285

d.
Sa se determine N2 = P6 x Q8 unde P6 = 125 si Q8 = 17. Sa
se converteasca n baza 4 numarul N10 = 175.1285 cu 6 pozitii n partea
zecimala n caz ca nu este respectata conditia (2.6).
1. P se converteste P prin metoda substitutiei
P = (125 )6 = (1)6 (10 )26 + (2 )6 (10 )16 + (5 )6 (10 )06

dar

(1)6 = (1)10 , (2 )6 = (2 )10 , (5 )6 = (5 )10 (10) 6 = (6 )10


n aceste conditii numarul P se va scrie
2
0
P = (125 )6 = (1)10 (6 )10
+ (2 )10 (6 )110 + (5)10 (6 )10
= 36 + 12 + 5 = (53)10

2. P se converteste Q prin metoda substitutiei


Q = (17 )8 = (1)8 (10 )18 + (7 )8 (10 )80

13.01.2004

18 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

dar

(1)8 = (1)10 , (7)8 = (7)10 , (10)8 = (8)10


n aceste conditii numarul Q se va scrie
0
Q = (17 )8 = (1)10 (8)110 + (7 )10 (8)10
= 8 + 7 = (15)10

3. Se determina produsul N10 = P10 x Q10


N10 = 53 x 15 = 795
4. Pentru a se efectua mai putine mpartiri N se converteste mai
nti n baza 16 prin mpartiri succesive
795 = 16 x 9 + B ?
49 = 16 x 3 + 1 ?
3 = 16 x 0 + 3 ?

a0 = B
a1 = 1
a2 = 3

Rezulta (N)16 = 31B


5. Utiliznd echivalentele din Tabelul 2.1 se obtine
(N)2 = 0011 0001 1011
6. Verificarea se realizeaza procedndu-se la conversia inversa, cu
metodei substitutiei:
(N)10 =
0x211 +0x210 +1x29 +1x28 +0x27 +0x26 +0x25 +1x24 +1x23 +
2
1
+0x2 +1x2 +1x20 = 512+256+16+8+2+1= 795
2.2.3. Operatii aritmetice n binar octal si hexazecimal
Operatiile aritmetice elementare ntr-un SN cu baza o putere a lui 2
urmeaza aceleasi reguli ca n zecimal, cu luarea n consideratie a
principiului de numarare specific fiecarui SN.
Este de mentionat ca numaratoarea n sistemul zecimal este
realizata prin utilizarea consecutiva a celor zece simboluri (0, 1, 2, , 9);
epuizarea acestora conduce la introducerea simbolului 1 pe o pozitie mai la
stnga si reluarea pe pozitia initiala a secventei de simboluri (10, 11, 12, ,

13.01.2004

19 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

19). Procesul continua n mod similar prin adaugarea cifrelor 2, 3 , , 9.


Cnd se ajunge la 9 n pozitia secunda se continua cu adaugarea unei noi
pozitii la stnga s.a.m.d.
2.2.3.1. Operatii aritmetice n SN binar
Dupa cum s-a aratat pentru reprezentarea unui numar n SN binar
se folosesc simbolurile 0 si 1. Respectnd regula de numarare zecimala, n
conditiile operarii n exclusivitate cu cele doua simboluri se obtine
urmatoarea secventa:
0, 1,
10, 11,
100, 101, 110, 111
1000, 1001, 1010,
n Tabelul 2.2 sunt prezentate regulile pentru adunare si nmultire
n binar.
Tabelul 2.2
Adunare

nmultire

10

n continuare se prezinta cte un exemplu pentru fiecare dintre


operatiile elementare (adunare, scadere, nmultire si mpartire).
Adunare
1 0 11 0 11 . 10 1 10 +
1 1 01 1 11 . 01 1 01
11 0 01 0 11 . 00 0 11

nmultire
10 11 . 11 x
1 11 . 01
1 011 11

13.01.2004

Scadere
1 1 01 11 0 . 1 01 1 1 0 0 01 01 1 . 0 11 1 0
1 1 00 01 1 . 0 10 0 1

mpartire
1 1 1 0 1 1 1 0 . 1 1 1 11 0 1
1 10 1
10 0 1 0 . 0 1 1
0 00 11 11

20 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

00 000 0

11 01
00 10 011
1 101
00 110 1
110 1
000 0

1 01 111
10 11 11
1 01 11 1
10 01 11 000 11
1 00 11 10 . 00 11

2.2.3.2. Operatii aritmetice n SN octal


Dupa cum s-a aratat pentru reprezentarea unui numar n SN octal se
utilizeaza simbolurile 0, 1, 2, ,7. Aplicnd regula de numarare zecimala,
n conditiile operarii n exclusivitate cu cele opt simboluri se obtine
urmatoarea secventa:
0, 1,2,3,4,5,6,7
10, 11,12,13,,17
20,21,23,23,,27
..
n Tabelul 2.3 sunt prezentate regulile pentru adunare si nmultire
n octal.
+
0
1
2
3
4
5
6
7

0 1 2 3
0 1 2 3
1 2 3 4
2 3 4 5
3 4 5 6
4 5 6 7
5 6 7 10
6 7 10 11
7 10 11 12

4
4
5
6
7
10
11
12
13

5
5
6
7
10
11
12
13
14

6
6
7
10
11
12
13
14
15

7
7
10
11
12
13
14
15
16

x
0
1
2
3
4
5
6
7

0
0
0
0
0
0
0
0
0

1
0
1
2
3
4
5
6
7

2
0
2
4
6
10
12
14
16

3
0
3
6
11
14
17
22
25

Tabelul 2.3
4 5 6
0 0 0
4 5 6
10 12 14
14 17 22
20 24 30
24 31 36
30 36 44
34 43 52

Ca si n cazul precedent, n cele ce urmeaza se prezinta cte un


exemplu pentru fiecare dintre operatiile elementare (adunare, scadere,
nmultire si mpartire).

13.01.2004

21 / 104

7
0
7
16
25
34
43
52
61

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice


Adunare
2 57 . 4 3 2 +
1 44 . 6 1 3
4 24 . 2 4 5

nmultire
17 53 . 21 6 x
4.3
570 165 2

76 55 070
1 0 4 45 2552
1 0 4 4 5 . 25 5 2

Scadere
4 1 23 . 5 16 5 67 . 3 07
3 3 34 . 2 07

mpartire
76 32 1 . 5 42 : 2 3 . 11
7 6 3 2 1 5 4 . 2 23 1 1
71 33
32 0 5 . 3 2
=4 77 1
4 62 2
= 14 754
13 755
== 7 7 7 2
713 3
=63 70
46 22
15 46

2.2.3.3. Operatii aritmetice n SN hexazecimal


Reprezentarea unui numar n SN cu baza 16 (hexazecimal) implica
utilizarea simbolurilor 0, 1, 2, ,7, 8, 9, A, B, C, D, E, F. Prin aplicarea
regulii de numarare zecimala, n conditiile operarii cu cele 16 simboluri
specifice rezulta urmatoarea secventa:
0, 1, 2, 3, 4, 5, 6 ,7, 8, 9, A, B, C, D, E, F
10, 11,12,13,,1D, 1E, 1F
20,21,23,23,,2f
..
n Tabelele 2.4 si 2.5 sunt prezentate regulile pentru adunare si
nmultire n hexazecimal.
Tabelul 2.4
+ 0 1 2 3 4 5 6 7 8 9 A B C D E F
2
3
4
5
6
7 8 9 A
B
C
D
E
F
0 0 1

13.01.2004

22 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

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

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

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

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

3
4
5
6
7
8
9
A
B
C
D
E
F
10
11

4
5
6
7
8
9
A
B
C
D
E
F
10
11
12

5
6
7
8
9
A
B
C
D
E
F
10
11
12
13

6
7
8
9
A
B
C
D
E
F
10
11
12
13
14

7
8
9
A
B
C
D
E
F
10
11
12
13
14
15

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

0
2
4
6
8
A
C
E
10
12
14
16
18
1A
1C
1E

0
3
6
9
C
F
12
15
18
1B
1E
21
24
27
2A
2D

0
4
8
C
10
14
18
1C
20
24
28
2C
30
34
38
3C

0
0
5
6
A
C
F 12
14 18
19 1E
1E 24
23 2A
28 30
2D 36
32 3C
37 42
3C 48
41 4E
46 54
4B 5A

8
9
A
B
C
D
E
F
10
11
12
13
14
15
16

7
0
7
E
15
1C
23
2A
31
38
3F
46
4D
54
5B
62
69

9
A
B
C
D
E
F
10
11
12
13
14
15
16
17

A
B
C
D
E
F
10
11
12
13
14
15
16
17
18

B
C
D
E
F
10
11
12
13
14
15
16
17
18
19

C
D
E
F
10
11
12
13
14
15
16
17
18
19
1A

D
E
F
10
11
12
13
14
15
16
17
18
19
1A
1B

E
F
10
11
12
13
14
15
16
17
18
19
1A
1B
1C

F 10
10 11
11 12
12 13
13 14
14 15
15 16
16 17
17 18
18 19
19 1A
1A 1B
1B 1C
1C 1D
1D 1E

Tabelul 2.5
C D E F

8 9

0
8
10
18
20
28
30
38
40
48
50
58
60
68
70
78

0
A
14
1E
28
32
3C
46
50
5A
64
6E
78
82
8C
96

0
0
0
0
0
B
C
D
E
F
16 18 1A 1C 1E
21 24 27 2A 2D
2C 30 34 38 3C
37 3C 41 46 4B
42 48 4E 54 5A
4D 54 5B 62 69
58 60 68 70 78
63 6C 75 7E 87
6E 78 82 8C 96
79 84 8F 9A A5
84 90 9C A8 B4
8F 9C A9 B6 C3
9A A8 B6 C4 D2
A5 B4 C3 D2 E1

0
9
12
1B
24
2D
36
3F
48
51
5A
63
6C
75
7E
87

n continuare se prezinta cte un exemplu pentru fiecare dintre


operatiile elementare (adunare, scadere, nmultire si mpartire) efectuate n
SN hexazecimal.

13.01.2004

23 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice


Adunare
7FA 4 +
52 1D
D1 C 1

nmultire
1 4A. 2 F x
B.1
1 4A 2 F

E3 00 5
E 4 4A 7 F
E4 4 . A7 F

Scadere
C4 1 2 A FB 5
1 4 5D

mpartire
A 5 7 BF
3A
74
2 DA 6 . 9A
3 17
2F2
= 25B
24 4
=1 7F
1 5C
23 0
20A
260
244
1C

2.3. Reprezentarea numerelor n calculator


Uzual un echipament de calcul numeric preia datele si ofera
rezultatele ntr-o forma accesibila utilizatorului. n ceea ce priveste
prelucrarea, aceasta presupune exprimarea datelor ntr-o forma specifica
procesorului. n consecinta exista doua formate de reprezentare a numerelor
n calculator si anume formatul intern si formatul extern.
Pentru reprezentarea interna se utilizeaza SN binar n mai multe
forme diferentiate de solutia aleasa pentru indicarea pozitiei virgulei si
semnului numarului. n acest sens pozitia fixa sau variabila a
delimitatorului fractionar (punct sau virgula) determina reprezentarea n
virgula fixa sau respectiv n virgula mobila.
2.3.1. Reprezentarea numerelor n virgula fixa

13.01.2004

24 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

n calculator se opereaza cu numere de lungime fixa, numarul de


pozitii binare fiind determinat de lungimea registrelor de memorare.
n formatul virgula fixa, virgula (punctul zecimal) nu este
reprezentata fizic n calculator, pozitia sa fiind stabilita prin proiectare si
neputnd fi schimbata. Uzual virgula se considera plasata n fata celei mai
semnificative cifre a numarului, n aceste conditii numerele cu care se
opereaza fiind subunitare.
Observatie importanta.
Numarul de biti pe care se reprezinta un numar este finit si fix,
stabilindu-se n faza de proiectare a calculatorului. Din acest motiv n
calculator nu se poate reprezenta dect un numar finit de valori, care pot fi
interpretate diferit n cele doua formate (intern sau extern). Numerele care
se pot reprezenta n calculator se numesc numere cu precizie finita (NPF)
si au proprietati diferite fata de numerele din matematica.
n cazul acestora poate aparea depasirea capacitatii de memorare
deoarece NPF au un domeniu finit de valori, n sensul ca nu pot exista
numere orict de mari sau orict de mici. Depasirile pot fi detectate
hardware sau software. Urmatorul exemplu demonstreaza ca n cadrul NPF
nu este valabila proprietatea de asociativitate.
s
Fie o masina cu urmatorul format admisibil:
n care se pot reprezenta numere ntregi cuprinse ntre 999 si +999.
Fie a = 600, b=500, c=400
n aritmetica clasica a+(b-c) = (a+b)-c respectiv 600+(500-400)
=700 si (600+500)-400=700 asociativitatea fiind respectata.
n cazul NPF (calculatoare) a+(b-c) = 600+(500-400) = 700, iar
(a+b)-c = (600+500) - 400 = eroare.
1100 - depasire
Numerele ntregi fara semn se reprezinta prin corespondentul lor
binar (codul direct) numarul de biti pentru reprezentarea unui numar N
fiind 2 n-1 N < 2 n .
Pentru numerele cu semn exista trei reprezentari mai des utilizate si
anume:

13.01.2004

25 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

1. semn marime;
2. complement fata de 2;
3. complement fata de 1.
nainte de a trata fiecare mod de reprezentare se va defini notiunea
de complement al unui numar N scris ntr-o baza b.
a)
Se numeste complement fata de baza b a numarului (N)b
numarul ( N ) b definit prin relatia
( N ) b = b n (N )b .

b)

(2.12)

Se numeste complement fata de b-1 a numarului (N)b

numarul ( N )b definit prin relatia


( N ) b = b n (N )b b m .

(2.13)

n relatiile de mai sus n si m reprezinta numarul de cifre ale partii


ntregi respectiv fractionare ale numarului N iar b este baza SN n care se
reprezinta numarul.
Exemple
a. Sa se determine C10 si C9 pentru numarul (N)10 = 175.32
n SN zecimal C10 = N = 10 n N si C 9 = N = 10 n N 10 m
C10 (175 .32) = N = 10 3 175 .32 = 824 .68
C 9(175.32) = N = 10 3 175 .32 10 2 = 824 .67

b. Sa se determine C2 si C1 pentru numarul (N)2 = 1011.11


n SN binar C 2 = N = 2 n N si C1= N = 2 n N 2 m
C 2(1011 .11) = N = 2 4 1011 .11 =10000 .00 1011 .11 = 0100 .01
C1(1011 .11) = N = 2 4 1011.11 2 2 = 10000 .00 1011 .11 0.01 =
= 10000 .00 1100 .00 = 0100 .00
Daca n este numarul de cifre binare ale unui numar, atunci cel mai
mare numar pozitiv care poate fi reprezentat este

13.01.2004

26 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

N = 2n 1,

(2.14)

numarul de valori distincte fiind 2 .


Pentru exemplificare n Tabelul 2.6 se prezinta valori tipice pentru
n si 2 n si N.
Tabelul 2.6
n=
2n = numar de valori
N = valoarea maxima
numar
distincte
reprezentabila
de biti
8
256
255
16
65,536
65,535
32
4,294,967,296
4,294,967,295
64
1,844,674,407,370,955,616
1,844,674,407,370,955,615
n general domeniul finit de valori pentru numerele ntregi,
reprezentate n formatul cu virgula fixa este:
D = [Vmin ,Vmax ] Z ,

(2.15)
unde Vmin si Vmax sunt cea mai mica respectiv cea mai mare valoare
care se pot reprezenta pe n biti. Cele 2n valori distincte pot constitui
reprezentari ale unor numere ntregi pozitive sau negative.
2.3.1.1. Reprezentarea unui numar prin marime si semn
Scrierea unui numar prin marime si semn (sau n cod direct) este
data de relatia
n1

N = an 2 +

a 2
i

(2.16)

i =m

unde a n este bitul de semn, iar a i sunt bitii numarului N.


n privinta semnului a n care ocupa bitul cel mai semnificativ
(MSb Most Significant bit) conventia este urmatoarea:
a n = 0, daca N 0 ;
a n = 1, daca N < 0 .
Considernd reprezentarea pe m+n biti, conform relatiei (2.16) primul bit
din stnga este asociat semnului, iar restul de n+m-1 biti contin marimea
numarului egala cu reprezentarea binara a valorii N- figura 2.1.

13.01.2004

27 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

s
1

M marime
n+m-1 biti

Fig. 2.1. Reprezentarea semn marime pe n+m biti.

Exemple
a)

+ 9 = 0 1001
valoarea numarului
bitul de semn

b)

- 6 = 1 0110
valoarea numarului
bitul de semn

c) -0.6875 = 1 1011
valoarea numarului
bitul de semn
Reprezentarea semn marime prezinta avantajul apropierii de scrierea
naturala, nsa din punctul de vedere al realizarii calculelor prezinta unele
dezavantaje. Acestea se refera n primul rnd la necesitatea examinarii nainte de
realizarea unei operatii (adunare sau scadere) a bitului de semn. Pe de alta parte,
unitatea aritmetica se poate mult simplifica daca este orientata numai catre operatia
de adunare. Acest deziderat se poate realiza prin alegerea convenabila a
reprezentarii numerelor, recomandabila fiind reprezentarea n C2 (complement fata
de 2).
Un alt dezavantaj important este legat de reprezentarea numarului zero
care este afectata de semn respectiv

[+0] d = 0 000 000 ;


[- 0]d = 1 000 000 .
Aceasta dubla reprezentare face ca un numar N ntreg reprezentat n
cod direct pe n ranguri sa poata lua valori n gama
2 n1 + 1 N 2 n1 1 ,

ceea ce, de exemplu, face ca pentru

13.01.2004

28 / 104

(2.17)

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

n=8 domeniul de reprezentare sa fie D = [ 127 ,+127 ] Z ;

n=16 domeniul de reprezentare sa fie D = [ 32767 ,+32767 ] Z .

2.3.1.2. Reprezentarea unui numar n complement fata de 1


(cod invers)
Pentru numere pozitive N 0 reprezentarea n complement fata de
1 este identica cu reprezentarea semn marime.
Daca N < 0, atunci bitul de semn s = 1 si
C1( N ) = 2 n1 1 N ,

(2.18)

unde n-1 este numarul de biti utilizati pentru reprezentarea marimii


(fara semn).
Calculul C(1) se poate face prin doua metode si anume:
a. utiliznd definitia, respectiv

s =1
C1( N ) = 2n 1 1 N ;
b. prin inversarea bitilor reprezentarii cu semn a valorii absolute
|N| a numarului N.

Exemple
Fie n-1 = 7 si N = -123; sa se calculeze prin cele doua metode
C1(N)
a. |N| = 123; C1(|N|) = 27 1 123 = 128 1 123 = 4 =0000 100
C1(N) = 1 0000100 = (1x27 + 1x22 )10 = (132) 10
b. (|N|) d = 0 1111011
C1(N) = 1 0000100 (s-a inversat fiecare bit).
n ceea ce priveste reprezentarea numarului zero si n acest caz aceasta este
afectata de semn respectiv

[+0] i = 0 000 000 ;


[- 0]d = 1 111 111 .
Aceasta dubla reprezentare face ca un numar N ntreg reprezentat n
cod direct pe n ranguri sa poata lua valori n aceiasi gama ca n cazul
codului direct.
2.3.1.3. Reprezentarea unui numar n complement fata de 2

13.01.2004

29 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

(cod complementar)
Pentru numere pozitive N > 0 reprezentarea n complement fata de
2 este identica cu reprezentarile semn marime si n cod complementar
fata de 1.
Daca N < 0, atunci s = 1
C 2( N ) = 2 n 1 N ,

(2.19)

unde n-1 este numarul de biti utilizati pentru reprezentarea marimii


(fara semn).
Calculul C(1) se poate face prin trei metode si anume:
a. utiliznd definitia, respectiv

s = 1 C 2 ( N ) = 2n 1 N ;
b. prin inversarea bitilor reprezentarii cu semn a valorii absolute
|N| a numarului N la care se adauga 1, n pozitia cea mai putin
semnificativa;

c. prin analiza de la dreapta la stnga a reprezentarii cu semn a


valorii absolute |N| a numarului N. Primii biti de 0 si primul bit
de 1 se lasa neinversati, apoi se inverseaza toti bitii, inclusiv
bitul de semn (daca primul bit ntlnit este 1 se lasa neschimbat
numai acesta).
Exemple
1. Fie n-1 = 7 si N = -123; sa se calculeze prin cele trei metode
C2(N)
a. |N| = 123; M = 27 123 = 128 123 = 5
C2(N) = 1 0000101
b. (|N|) d = 0 1111011
C1(N)
=
1 0000100 + (s-a inversat fiecare bit).
1
C2(N)
=
1 0000101
c. 1. (|N|) d = 0 1111011
2. se analizeaza bitii de la dreapta spre stnga si se inverseaza
C2(N)

13.01.2004

1 000010 1 bit neschimbat

30 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

biti inversati
2. Fie n-1 = 7 si N = -96; sa se calculeze prin cele trei metode
C2(N)
a. |N| = 96; M = 27 96 = 128 96 = 32
C2(N) = 1 0100000
b. (|N|) d
C1(N)

=
=

C2(N)

c. 1. (|N|)

0 1100000
1 0011111 + (s-a inversat fiecare bit).
1
1 0100000

= 0 1 100000

2. se analizeaza bitii de la dreapta spre stnga si se inverseaza


C2(N)

1 0 100000 biti neschimbati


biti inversati

Reprezentarea n complement fata de 2 este cea mai utilizata pentru


numerele algebrice datorita n primul rnd faptului ca elimina ambiguitatile
legate de reprezentarea numarului zero.
n C2 numarul zero are o reprezentare unica si anume
[0] c = 0 000 000 .
Aceasta unica reprezentare face ca un numar N ntreg reprezentat n
cod complementar pe n ranguri sa poata lua valori n gama
2 n 1 N 2 n1 1

(2.20)

ceea ce va implica, de exemplu, pentru


- n=8 domeniul de reprezentare sa fie D = [ 128 , + 127 ] Z ;
-

n=16 domeniul de reprezentare sa fie D = [ 32768 ,+32767 ] Z .


2.3.1.4. Reprezentarea n exces

Necesitatea acestui tip de reprezentare este impusa de anumite


avantaje pe care le ofera tratarea numerelor fara semn. Ideea care sta la
baza acestei reprezentari cunoscuta si sub denumirea de reprezentare
deplasata consta n adunarea la fiecare numar a unui exces reprezentat de
regula de cel mai mic numar ntreg negativ care se poate reprezenta n
calculator.

13.01.2004

31 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

De exemplu n reprezentarea C2 pe un octet domeniul


D = [ 128 , + 127 ] Z
se transforma prin adunarea excesului 128 n
Dexces 128 = [0 , + 255 ] Z .
n aceste conditii celui mai mic numar negativ (-128)10 i va
corespunde (00000000) 2 iar celui mai mare numar pozitiv (+127) 10 i va
corespunde (11111111) 2 . Aceasta reprezentare simplifica efectuarea
operatiei de comparare a numerelor, ceea ce este esential pentru realizarea
hardware-ului implicat n operarea exponentilor la reprezentarea n virgula
mobila.
*
*
*
Dupa cum s-a vazut prin reprezentarea n format virgula fixa se
precizeaza un numar de ranguri la stnga virgulei pentru partea ntreaga,
respectiv la dreapta acesteia pentru partea fractionara. n aceste conditii
gama si precizia de reprezentare sunt determinate de numarul de ranguri.
De exemplu pe 40 de ranguri pot fi manevrate numere de ordinul
trilioanelor (1012 ) precizia fiind de o trilionime.
Solicitari suplimentare ar putea fi rezolvate prin cresterea
numarului de ranguri, aspect care nu este posibil ntruct acest numar este
fixat pentru un anumit tip de calculator.

2.3.2. Reprezentarea numerelor n virgula mobila


Necesitatea reprezentarii n calculator a numerelor foarte mari sau
foarte mici, cu o precizie ridicata a condus la reprezentarea n virgula
mobila (VM) .
Reprezentarea n format VM utilizeaza reprezentarea stiintifica
r = m x bE
careia i sunt asociate trei componente:

b baza;

E exponentul; care indica ordinul de marime al numarului;

m mantisa asociata marimii exacte a numarului ntr-un


anumit domeniu.

13.01.2004

32 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

Exemple
6.342 = 0.6342 x 101 = 6.342 x 100 ;
0.0057 = 0.57 x 10-2 = 5.7 x 10-3 ;
5760 = 0.576 x 104 = 5.76 x 103 .
Consideram ca pentru reprezentarea unui numar n virgula mobila
se utilizeaza n biti din care e pentru exponent (care determina intervalul de
valori) si m biti pentru mantisa (care determina precizia reprezentarii).
Dupa cum se stie cu n biti se pot reprezenta 2n numere reale.
ntre numere reale din matematica si numerele reale reprezentate n
formatul cu virgula mobila exista diferente legate de domeniul finit si
multimea discreta de valori. Domeniul finit de valori este determinat de
capacitatea fizica limitata a memoriei calculatorului.
Pentru a vedea cum se poate determina acest domeniu vom
considera o masina ipotetica zecimala (baza de numeratie este 10) n care:
- mantisa m este subunitara si pozitiva respectiv, 0 m < 1;
- mantisa se reprezinta ca un numar cu semn si trei cifre, n
domeniul 0.1 m < 1 sau zero;
- exponentul se reprezinta ca un numar cu semn si doua cifre.
Structura unui numar cu caracteristicile expuse precum si valorile
pozitive minima si maxima sunt:
mantisa exponent
Structura:
? ? ? ? ? ?
Vmin =
- 99 9
- 99 = - 0.999 x 10-99 ;
Vmax =
+9 9 9
+ 99 = + 0.999 x 10+99.
Numarul de mantise pozitive distincte este Nm = 1800 {900 pentru
m[999 , -100] Z si 900 m[+100 , +999] } Z, iar numarul de
exponenti este Ne = 199 (toate valorile ntregi intre 99 si +99 inclusiv 0 ),
deci rezulta ca n acest format se pot reprezenta n total N numere (pozitive
si negative)
N=Nm x Ne + 1 = 1800x199 + 1 = 358201 numere.
O reprezentare a valorilor limite pe axa reala permite evidentierea
situatiilor in care se produce depasire. Determinarea valorilor Vmin si Vmax

13.01.2004

33 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

permite identificarea pe axa reala, figura 2.2, a domeniilor de valori


reprezentabile.

(1)

(2)

(3) (4)

-Vmin

-Vmax
- 0.999 10+99

-99

- 0.100 x 10

(5)

(7)

+Vmin

+Vmax

+ 0.100 10-99

+ 0.999 10+99

-10-100

- 10+99

(6)

+10-100

+ 10 +99

Fig. 2.2. Domeniile valorilor reale reprezentabile n VM.

Zonele marcate cu cifre in figura 2.2 reprezinta urmatoarele


categorii de numere:
1. numere negative mai mici dect - 0.999 x 10 +99 ( - 10+99 ) ,
dar foarte mari in valoare absoluta;
2. numere negative intre - 0.999 x 10 +99 si - 0.100 x 10 -99
(- 10+99, -10-100 );
3. numere negative foarte mici cu valoare absoluta mai mica dect
0.100 x 10 -99 (10-100 );
4. zero;
5. numere pozitive foarte mici cu valoare absoluta mai mica dect
0.100 x 10 -99 (10-100 );
6. numere pozitive intre + 0.100 x 10 -99 si + 0.999 x 10 +99
(+ 10-100 , -10+99);
7. numere foarte mari in valoare absoluta, pozitive mai mari
dect + 0.999 x 10 +99 (+10+99);
Domeniul de reprezentare va fi format din zonele (2 numere
negative) si (6 - numere pozitive) la care se adauga zona 4 reprezentata de
numarul zero. Daca n urma unei operatii aritmetice rezulta o valoare n
zonele (1) sau (7) apare depasirea flotanta (inferioara daca rezultat < -Vmin
sau superioara daca rezultat > +Vmax). Daca rezultatul se situeaza n zonele
(3) sau (5) se semnalizeaza imposibilitatea reprezentarii pentru ca numerele
sunt prea mici (negative zona 3, pozitive zona 5).

13.01.2004

34 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

Caracterul discret al reprezentarii n virgula mobila este dat de


faptul ca multimile din zonele (2) si (6) ale schemei din figura 2.2 sunt
multimi finite. Avnd n vedere ca multimea numerelor reale este o
multime continua (ntre orice doua numere reale se gaseste o infinitate de
asemenea numere) rezulta ca nu exista o corespondenta biunivoca ntre
aceasta multime si multimea numerelor reprezentabile n virgula mobila.
Numarul de cifre al mantisei determina precizia de reprezentare n
domeniile 2 si 6 in timp ce numarul de cifre al exponentului afecteaza
marimea acelorasi domenii.
Mantisa se reprezinta uzual in forma normalizata (prima cifra din
stnga diferita de zero) si intr-una din bazele 2, 4, 8, 16.
Pentru a nu folosi exponenti negativi se introduce notiunea de
caracteristica. Aceasta este egala cu exponentul cu semn deplasat, astfel
nct sa ia valori intr-o multime de numere pozitive. De exemplu pentru un
exponent in domeniul [-64, +63]Z, o deplasare cu +64 va conduce la o
caracteristica in domeniul [0, +127]Z.
Stabilirea formatului de reprezentare a numerelor reale n virgula
mobila a constituit obiectul a numeroase studii care s-au concretizat n
elaborarea n anul 1985 a standardului IEEE1 754. Astfel au fost alese doua
forme standard:
-

formatul scurt sau de baza ( figura 2.3) , pe un cuvnt de 32 de


biti care asigura o viteza mai mare de operare;

00

e
8 biti

s
1 bit

31

08 09

01

f
23 biti

Fig. 2.3. Formatul scurt n VM al Standardului IEEE 754.

formatul lung sau dublu de baza ( figura 2.4), pe un cuvnt de


64 de biti care asigura o precizie mai mare de lucru.
00

s
1 bit
1

63

11 12

01

e
11 biti

f
52 biti

Fig. 2.4. Formatul lung n VM al Standardului IEEE 754.


IEEE - Institute of Electrical and Electronics Engineers www.ieee.org

13.01.2004

35 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

n formatul scurt (simplu de lucru) semnificatiile sunt urmatoarele:


- bitul 00: s = semnul mantisei (s = 1 mantisa negativa );
- bitii 01- 08: e = exponentul deplasat (deplasarea este 27 1 =
127);
- bitii 09 - 31: f = mantisa normalizata/ fractia 2 .
Valoarea unui numar r reprezentat ntr-un asemenea format este:
-

daca e = 255 si f ? 0 atunci r = NAN (nu este un numar Not


A Number);
daca e= 255 si f = 0 atunci r = ( 1)s ;

daca 0 < e < = 255 atunci; r = ( 1)s 2e (2

) (1. f ) ;(2.21)

daca e= 0 si f ? 0 atunci ; r = ( 1)s 2 126 (0 . f )

daca e= 0 si f = 0 atunci r = ( 1)s 0 ( zero ) .

n particular se obtin urmatoarele reprezentari n format scurt


0 00000000 00000000000000000000000 = +0
1 00000000 00000000000000000000000 = -0
0 11111111 00000000000000000000000 = +8
1 11111111 00000000000000000000000 = -8
0 11111111 00000100000000000000000 = NaN
1 11111111 00100010001001010101010 = NaN
0 10000000 00000000000000000000000 = +1 * 2**(128-127) * 1.0 = 2
0 00000001 00000000000000000000000 = +1 * 2**(1-127) * 1.0
= 2**(-126)
0 00000000 10000000000000000000000 = +1 * 2**(-126) * 0.1
2

cnd e?0, se presupune un bit egal cu 1 la stnga lui f; virgula se considera


plasata ntre acest bit si primul bit explicit al mantisei.

13.01.2004

36 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

= 2**(-127)
0 00000000 00000000000000000000001 = +1 * 2**(-126) *
0.00000000000000000000001 = 2**(-149) (Cea mai mica valoare
pozitiva)
Conform relatiei (2.21) marimea numerelor reprezentate este n
gama

. 2 126 (1.0) r 2127 2 2 23

n formatul lung (dublu de baza) semnificatiile sunt urmatoarele:


- bitul 00: s = semnul mantisei (s = 1 mantisa negativa );
- bitii 01 - 11: e = exponentul deplasat (deplasarea este 210 1 =
1023);
- bitii 12 - 63: f = mantisa normalizata/ fractia 3 .
Valoarea unui numar r reprezentat ntr-un asemenea format este:
- daca e = 2047 si f ? 0 atunci r = NAN (nu este un unumar
Not A Number);
- daca e= 2047 si f = 0 atunci r = ( 1)s ;
daca 0 < e < = 2047atunci; r = ( 1)s 2 e (2

10

) (1+ f ) ;(2.21)

daca e= 0 si f ? 0 atunci r = ( 1)s 2 1022 (1 + f ) ;

daca e= 0 si f = 0 atunci r = ( 1)s 0 ( zero ) .

Conform relatiei (2.21) marimea numerelor reprezentate este n


gama

2 126 (1.0) r 2127 2 23

10
r = ( 1)s 2e (2 1) (1 + f ) , cu conditon e 0

(2.22)

Conform relatiei (2.21) marimea numerelor reprezentate este n


gama

2 1022 (1.0) r 21023 2 52 .

idem 2.

13.01.2004

37 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

Conform relatiei (2.21) marimea numerelor reprezentate este n


gama

. 2 126 (1.0) r 2127 2 23

Exemplu
Sa se reprezinte n formatul scurt numarul r= -348.562510 ,.
a. se converteste r in baza 2
348 = 174 x 2 + 0
174 = 87 x 2 + 0
87 = 43 x 2 + 1
43 = 21 x 2 + 1
21 = 10 x 2 + 1 rI = 101011100
10 = 5 x 2 + 0
5= 2x2+1
2= 2x1+0
1= 0x2+1
0.5625 x 2 = 1.125
0.1250 x 2 = 0.250
0.2500 x 2 = 0.500 rF = 0.1001
0.5000 x 2 = 1.000
r =1010 11100.1001
b.

se trece rezultatul in forma normalizata


r =1.0101 1100 1001 0000 0000 000 x 28 (pentru a se obtine
mantisa pe 23 de biti s-a completat doua grupe de cte 4 si o grupa cu 3 de
zero;
c.
se reprezinta n VM
s = 1 (negativ)
e = 127 + 8 = 13510 = 8716 = 1000 01112
f = 0101 1100 1001 0000 0000 000
Rezulta reprezentarea in virgula mobila
r = 1 1000 0111 0101 1100 1001 0000 0000 000
d. Verificare

13.01.2004

38 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

r = (-1)1 x 2135-127 x 1. 0101 1100 1001 0000 0000 000


1. 1101 1100 1001 0000 0000 000 = 1+2-1 +2-2 +2-4 +2-5 +2-6 +2-9 +2-12
= 1+0.25+0.0625+0.03125+0.015625+0.001953125+
+0.000244140625=1.361572265625
r = (-1)1 x 28 x 1.361572265625=-256x1.361572265625=348.5625
naintea unor consideratii referitoare la precizia de reprezentare,
ctiva termeni si concepte specifice erorilor de calcul, dintre care cu o
parte s-a operat n subcapitolele precedente.

Precizia constituie un termen asociat cu lungimea


cuvntului, respectiv numarul de biti disponibili pentru reprezentarea
numarului. De exemplu, n cazul unui registru de 8 biti, considernd ca se
reprezinta numai numere naturale precizia de reprezentare va fi de 1/2 8
respectiv 1/256.

Acuratetea reprezinta o masura a apropierii unei aproximari


fata de valoarea exacta. De exemplu numarul 12 se exprima exact pe 4 biti
(1100) iar numarul 0.66650390625 pe 11 biti (0.10101010101- partea
fractionara. Daca se impune n acest din urma caz o reprezentare pe 8 biti se
obtine 0.10101010 (echivalent reprezentare 0.6640625). Dupa cum se
observa a doua reprezentare este mai precisa (8 biti n loc de 4) dar are o
acuratete mai mica.

Gama reprezinta multimea numerelor reprezentabile ntr-un


sistem dat. De exemplu pentru reprezentarea numerelor ntregi n C2 pe
patru biti, aplicnd relatia (2.20) se obtine gama [-8,7]nZ.

Rezolutia constituie marimea diferentei (respectiv a


distantei ) dintre doua numere adiacente. n cazul reprezentarii n virgula
fixa aceasta distanta este constanta n interiorul gamei, n timp ce la
reprezentarea n virgula mobila distanta este variabila si depinde de
marimea exponentului.

Trunchierea (rotunjirea prin lipsa) este un procedeu utilizat


atunci cnd precizia nu este suficienta pentru reprezentarea numarului dat.
De exemplu daca se doreste reprezentarea numarului pi = 3.141592654
ntr-un dispozitiv capabil sa memoreze numai 6 cifre zecimale, atunci

13.01.2004

39 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

numarul pi1 = 3.14159 va reprezenta numarul pi cu e eroare de trunchiere


de 0.000002654.

Rotunjirea este metoda de selectie a celei mai apropiate


valori de valoarea initiala a numarului. n zecimal, daca cifra aflata la
dreapta ultimei cifre care se poate reprezenta este = 5, atunci ultima cifra
reprezentabila se incrementeaza cu unu (n caz contrar aceasta ramne
neschimbata).
Erori specifice reprezentarii numerelor n virgula mobila.
Datorita preciziei finite de reprezentare apar erori care pot fi acceptate sau
nu de catre o aplicatie data. De exemplu diferenta 1000000-1 n VM va
conduce tot la 1000000 n conditiile unei erori mai mari dect 1.
La analiza reprezentarii n VM intereseaza urmatoarele aspecte:
numarul numerelor reprezentabile;
numarul care are valoarea/marimea cea mai mare;
numarul diferit de zero care are valoarea/marimea cea mai
mica;
- determinarea celei mai mari distante dintre doua numere
succesive;
determinarea celei mai mici distante dintre doua numere
succesive.
-

Stabilirea numarului numerelor reprezentabile se face tinnd cont


de numarul de valori pe care le pot lua cmpurile distincte ale reprezentarii
n VM:
- semnul poate lua doua valori;
- numarul de exponenti este n exp= (E-e)+1, unde E, e sunt cel
mai mare respectiv cel mai mic exponent;
- primul rang al partii fractionare (mantisei) este b-1 unde b este
baza;
- celelalte ranguri ale mantisei b f-1 unde f este numarul rangurilor
semnificative ale mantise n baza b;
- zero.
n aceste conditii pot fi reprezentate
Nrrepr = 2 ((E e ) + 1) (b 1) b f 1 + 1 ,

unde Nrepr este numarul de numere reprezentabile.

13.01.2004

40 / 104

(2.23)

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

Observatie
n cazul exponentului nu toate combinatiile de biti sunt valide. De
exemplu n standardul IEEE 754 , desi n simpla precizie sun
rezervati 8 biti, cel mai mic exponent este 126 si nu 128,
exponentii interzisi fiind pentru reprezentarile speciale zero si
infinit.
Cel mai mic numar reprezentabil Nmin (cu cel mai mare exponent b E
si cea mai mare mai mica fractie normalizata b -1 ) va fi
N min = b e 1 .

(2.24)

Cel mai mare numar reprezentabil Nmax (cu cel mai mare exponent
b E si cea mai mica mai mica fractie normalizata diferita de zero b -1 ) va fi

N max = b E 1 b f .

(2.25)

Cea mai mica distanta ntre doua numere consecutive Dmin care
apare atunci exponentul are cea mai mica valoare b e si se modifica cel mai
putin semnificativ bit al fractiei b -f va fi
Dmin = b e f .

(2.26)

Cea mai mare distanta ntre doua numere consecutive Dmax care
apare atunci exponentul are cea mai mare valoare b E si se modifica cel mai
putin semnificativ bit al fractiei b -f va fi
Dmin = b E f .

(2.27)

Exemplu
Sa se determine elementele de mai sus urmatoarea reprezentare n
VM (figura 2.5):
- bit de semn;
- exponent pe doi biti n exces 2;
- fractie pe 3 biti normalizata fara 1 ascuns;
00

s
1 bit

13.01.2004

01

02

e
2 biti

03

05

f
3 biti

Fig. 2.5. Formatul41


VM/ 104
pentru exemplu.

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

Datele aferente reprezentarii vor fi:


e=-2, E=1, nexp = (E-e)+1=4;
multimea exponentilor va fi {-2, -1, 0, 1}4 ;
cea mai mica fractie f min =b -1 =2 -1 =(0.5)10 =(0.100)2 ;
cea mai mare fractie f max=1-b -f =1-2 -3 =(0.875)10 =(0.111)2;
modulul celui mai mic numar reprezentabil

1
N min = b e 1 = 2- 2-1 = 2 3 = = 0.125 10 0 10 = (0.001 2 0 ) 2
8
cel mai mare numar reprezentabil

N max = b E 1 b f = 21 1 2 3 = 2 (2 0.125 ) =
=

7
= (0.175 101 )10 = 0 .111 21 2
4

numarul reprezentarilor

Nrrepr = 2 ((E e ) + 1) (b 1) b f 1 + 1 =
2 ((1 + 2) + 1) (2 1) 231 + 1 = 2 4 2 2 + 1 = 33
distanta minima ntre doua numere reprezentabile
1
Dmin = b e f = 2 23 = 2 5 = = (0 .03125 )10 =
32

= (0 .00001 )2VF = 0.001 2 2 2VM

distanta maxima ntre doua numere reprezentabile


1
Dmin = b E f = 213 = 2 2 = = (0.25)10 =
4

= (0 .01)2VF = 0.010 21 2VM

2.3.3. Coduri numerice si alfanumerice

Cele 4 combinatii n binar vor fi 00, 01, 10, 11 sau avnd n vedere excesul se
obtin exponentii 2, -1, 0, 1.

13.01.2004

42 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

Dupa cum s-a aratat calculatorul prelucreaza numere reprezentate


n SN binar n timp ce utilizatorul uman opereaza curent cu numere
exprimate n SN zecimal, cu cuvinte specifice unei anumite limbi, cu
anumite semne grafice, etc. Pentru translatarea ntre celor doua maniere de
reprezentare, evident fara alterarea continutului informational se utilizeaza
codificarea.
A codifica elementele unei multimi A prin elementele unei alte
multimi B nseamna a realiza o corespondenta ntre fiecare element a A o
secventa de elemente b B .
Un cod este o functie f : A I unde I este multimea secventelor
care se pot forma cu elemente din B. n ceea ce priveste multimea A acesta
se numeste alfabet iar elementele acesteia (cifre, litere, semne de
punctuatie etc.) sunt caractere. Codurile n care sunt reprezentate numai
numere se numesc coduri numerice iar cele n care pe lnga numere contin
si litere, caractere speciale etc. se numesc coduri alfanumerice.
Avnd n vedere reprezentarea interna n cod binar, respectiv
B = {0,1} , n continuare vor fi tratate coduri care codifica litere si cifre prin
combinatii de elemente ale multimii B.
Daca multimea A are un numar de N caractere, un caracter poate fi
codificat printr-o secventa de n elemente din B daca
N 2n
(2.28)
Exemplu
Sa se determine numarul minim de biti care pot codific a cele zece
cifre ale SN zecimal.

Din

relatia

(2.28)

rezulta

n log 2 N

respectiv

1
= 3.322 . n aceste conditii rezulta ca numarul minim de
log 2
biti utilizati pentru codificarea unei cifre zecimale este n=4.
n log 2 10 =

2.3.3.1. Coduri numerice


Codurile binar-zecimale care asigura codificarea binara a
numerelor zecimale pot fi ponderate sau neponderate.
Codurile ponderate asociaza fiecarei cifre zecimale o tetrada
binara, n care fiecare rang are o anumita pondere. Pentru exemplificare n

13.01.2004

43 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

Tabelul 2.7 se prezinta o serie de coduri numerice ponderate cu o frecventa


mai ridicata de utilizare.
Tabelul 2.7
Zecimal
8421
2421
4221
5421
7421
0
0000
0000
0000
0000
0000
1
0001
0001
0001
0001
0001
2
0010
0010
0010
0010
0010
3
0011
0011
0011
0011
0011
4
0100
0100
0110
0100
0100
5
0101
1011
1001
1000
0101
6
0110
1100
1100
1001
0110
7
0111
1101
1101
1010
0111
8
1000
1110
1110
1011
1001
9
1001
1111
1111
1100
1010

Codul 8421 este un cod n care cifrele binare de la stnga


la dreapta au respectiv ponderile 2 3 , 22 ,21 , 20 .

Codurile 2421 si 4221 se caracterizeaza prin utilizarea


ponderii 2 n doua pozitii distincte ale tetradei, iar tetradele
care reprezinta cifre zecimale a caror suma este egala cu 9
sunt complementare. O alta particularitate consta n faptul
ca primele cinci tetrade au n prima pozitie 0 iar ultimele
cinci au n aceiasi pozitie cifra 1.

Codul 5421este caracterizat de faptul ca cifrele 5-9 se


deosebesc de cifrele 0-4 numai prin valoarea primului bit.

Codul 7421 utilizeaza ponderile 7, 4, 2, 1. Aceste ponderi


introduc o ambiguitate n ceea ce priveste reprezentarea
cifrei 7 (0111 sau 1000). Pentru nlaturarea acesteia se
introduce o restrictie si anume considerarea combinatiei cu
cei mai multi biti 1 respectiv 0111.
Codurile neponderate nu presupun existenta cte unei ponderi care
sa fie asociata fiecarei tetrade binare. n Tabelul 2.8 sunt prezentate cteva
coduri neponderate create pornind de la considerente impuse de utilizarea
lor.
Tabelul 2.8
Zecimal Exces 3
Gray
2 din 5

13.01.2004

44 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

Zecimal Exces 3
Gray
2 din 5
0
0011
0000
00011
1
0100
0001
00101
2
0101
0011
00110
3
0110
0010
01001
4
0111
0110
01010
5
1000
0111
01100
6
1001
0101
10001
7
1010
0100
10010
8
1011
1100
10100
9
1100
1101
11000
Codul Exces 3 se obtine din codul 8421 pri adunarea la
fiecare tetrada a cifrei 3 (0011) n binar. Rezulta un cod cu
proprietatea de autocomplementare5 din care s-a eliminat
combinatia 00006 .
Codul Gray se caracterizeaza prin aceea ca trecerea de la
echivalentul binar al unei cifre zecimale la urmatorul se
face prin modificarea unui singur rang binar.
Codul 2 din 5 utilizeaza pentru codificarea cifrelor
zecimale cinci pozitii binare, n conditiile n care fiecare
combinatie trebuie sa contina cte doi biti unitari. Aceasta
restrictie asigura unicitatea reprezentarii si creeaza
posibilitatea controlului asupra transmisiei informatiilor
codificate n acest mod.

2.3.3.2. Coduri alfanumerice


Numarul limitat al caracterelor alfanumerice (spre deosebire de
numerele reale la care gama este infinita) permite ca un ntreg set de
caractere sa fie reprezentat pe un numar limitat de biti. n practica s-au
impus doua sisteme de codificare a caracterelor alfanumerice ASCII si
EBCDIC.
Codul ASCII (American Standard Code for Information
Interchange) utilizeaza pentru reprezentarea caracterelor alfanumerice cte
7 biti pe caracter.
Tabelul 2.9
5

Doua tetrade ale caror echivalente zecimale nsumate dau 9 sunt complementare.
Pentru a face distinctie ntre valoarea 0 si absenta unui semnal se exclude
combinatia 0000.
6

13.01.2004

45 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice


HEX DEC CHR CTRL HEX DEC CHR HEX DEC CHR HEX DEC CHR
00
01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
0F
10
11
12
13
14
15
16
17
18
19
1A
1B
1C
1D
1E
1F

0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

NUL
SOH
STX
ETX
EOT
ENQ
ACK
BEL
BS
HT
LF
VT
FF
CR
SO
SI
DLE
DC1
DC2
DC3
DC4
NAK
SYN
ETB
CAN
EM
SUB
ESC
FS
GS
RS
US

^@
^A
^B
^C
^D
^E
^F
^G
^H
^I
^J
^K
^L
^M
^N
^O
^P
^Q
^R
^S
^T
^U
^V
^W
^X
^Y
^Z

20
21
22
23
24
25
26
27
28
29
2A
2B
2C
2D
2E
2F
30
31
32
33
34
35
36
37
38
39
3A
3B
3C
3D
3E
3F

32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63

SP
!
"
#
$
%
&
'
(
)
*
+
,
?
.
/
0
1
2
3
4
5
6
7
8
9
:
;
<
=
>
?

40
41
42
43
44
45
46
47
48
49
4A
4B
4C
4D
4E
4F
50
51
52
53
54
55
56
57
58
59
5A
5B
5C
5D
5E
5F

64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95

@
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
[
\
]
^
_

60
61
62
63
64
65
66
67
68
69
6A
6B
6C
6D
6E
6F
70
71
72
73
74
75
76
77
78
79
7A
7B
7C
7D
7E
7F

96
97
98
99
100
101
102
103
104
105
106
107
108
109
100
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127

`
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
{
|
}
~
DEL

Exista posibilitatea reprezentarii a 27 coduri, asignarea acestora la caractere valide fiind


evidentiata n Tabelul 2.9
Codurile 00h 1Fh si 7Fh nu sunt afisabile fiind caractere de control utilizate
pentru transmisie, controlul afisarii/tiparirii, ct si pentru alte scopuri, semnificatiile acestora
fiind cuprinse n Tabelul 2.10.

13.01.2004

46 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

Tabelul 2.10
CHR

S emnificatie

NUL
SOH
STX
ETX
EOT

NULl
S tart Of Heading
S tart of TeXt
End of TeXt
End Of
Transmission
ENQuiry
ACKnowledge
BELl
BackS pace
Horizontal
Tabulation
Line Feed
Vertical Tabulation

ENQ
ACK
BEL
BS
HT
LF
VT

S emnificatie

CHR

S emnificatie

FF
CR
SO
SI
DLE

Form Feed
Carriage Return
S hift Out
S hift In
Data Link Escape

CAN
EM
SUB
ESC
FS

CANcel
End of Medium
SUBstitution
ESCape
File S eparator

DC1
DC2

Device Control 1
Device Control 2

GS
RS

DC3
DC4
NAK

Device Control 3
Device Control 4
Negative
AcKnowledge
SYNchronous idle
End of Transmission
Block

US
SP
DEL

Group separator
Record
separator
Unit separator
S Pace
DELete

CHR

SYN
ETB

Toate celelalte caractere litere, cifre, semne de punctuatie, spatiul sunt


reprezentabile. Tratarea cifrelor 0 9 este similara cu a literelor mici si mari ceea ce
simplifica manipularea caracterelor7.

Codul EBCDIC (Extended Standard Code for Information


Interchange) utilizeaza pentru reprezentarea caracterelor alfanumerice cte
8 biti pe caracter, permitnd codificarea a 256 caractere evidentiate n
Tabelele 2.11.si 2.12..
Adesea codul pe 7 biti este reprezentat pe un octet, MSb avnd
semnificatia bitului de paritate.

Pentru a transforma reprezentarea alfanumerica a unei cifre n valoarea sa


numerica se scade 30h iar pentru a transforma codul unei majuscule n codul
corespunzator al minusculei se aduna 20h.

13.01.2004

47 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice


Tabelul 2.11
Dec Hex Code Dec Hex Code Dec Hex Code Dec Hex Code
0

00

NUL

32

20

64

40

01

SOH

33

21

65

02

STX

34

22

66

03

ETX

35

23

67

04

36

24

68

05

37

25

LF

06

38

26

07

39

27

08

40

09

10

0A

11

0B

HT
DEL

space

96

60

41

97

61

42

98

62

43

99

63

44

100

64

69

45

101

65

ETB

70

46

102

66

ESC

71

47

103

67

28

72

48

104

68

41

29

73

49

105

69

42

2A

74

4A

106

6A

VT

43

2B

75

4B

107

6B

12

0C

FF

44

2C

76

4C

<

108

6C

13

0D

CR

45

2D

ENQ

77

4D

109

6D

14

0E

SO

46

2E

ACK

78

4E

110

6E

>

15

0F

SI

47

2F

BEL

79

4F

|!

111

6F

16

10

DLE

48

30

80

50

&

112

70

17

11

49

31

81

51

113

71

18

12

50

32

82

52

114

72

19

13

51

33

83

53

115

73

20

14

52

34

84

54

116

74

21

15

53

35

85

55

117

75

22

16

54

36

86

56

118

76

23

17

55

37

87

57

119

77

24

18

CAN

56

38

88

58

120

78

25

19

EM

57

39

89

59

121

79

26

1A

58

3A

90

5A

!]

122

7A

27

1B

59

3B

91

5B

123

7B

92

5C

124

7C

93

5D

125

7D

94

5E

126

7E

95

5F

127

7F

"

BS

28

1C

IFS

60

3C

29

1D

IGS

61

3D

30

1E

IRS

62

3E

31

1F

IUS

63

3F

13.01.2004

SYN

EOT

NAK
SUB

48 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice


Tabelul 2.12
Dec Hex Code Dec Hex Code Dec Hex Code Dec Hex Code
128

80

192

C0

224

E0

129

81

161 A1

130

82

162 A2

193

C1

225

E1

194

C2

226

131

83

E2

163 A3

195

C3

227

E3

132

84

133

85

164 A4

196

C4

228

E4

165 A5

197

C5

229

E5

134
135

86

166 A6

198

C6

230

E6

87

167 A7

199

C7

231

E7

136

88

168 A8

200

C8

232

E8

137

89

169 A9

201

C9

233

E9

138

8A

170 AA

202

CA

234 EA

139

8B

171 AB

203

CB

235 EB

140

8C

172 AC

204

CC

236 EC

141

8D

173 AD

205

CD

237 ED

142

8E

174 AE

206

CE

238 EE

143

8F

175 AF

207

CF

239

EF

144

90

176

B0

208

D0

240

F0

145

91

177

B1

209

D1

241

F1

146

92

178

B2

210

D2

242

F2

147

93

179

B3

211

D3

243

F3

148

94

180

B4

212

D4

244

F4

149

95

181

B5

213

D5

245

F5

150

96

182

B6

214

D6

246

F6

151

97

183

B7

215

D7

247

F7

152

98

184

B8

216

D8

248

F8

153

99

185

B9

217

D9

249

F9

154

9A

186 BA

218 DA

250 FA

155

9B

187 BB

219

DB

251

FB

156

9C

188 BC

220

DC

252

FC

157

9D

189 BD

221 DD

253 FD

158

9E

190 BE

222

DE

254

FE

159

9F

191

223

DF

255

FF

13.01.2004

160 A0

BF

49 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

2.3.3.3. Coduri detectoare si corectoare de erori


n timpul transmisiei si prelucrarii datelor pot apare erori datorate,
n primul rnd, zgomotelor care afecteaza nivelurile fizice de tensiune
specifice semnalelor digitale. Pentru detectarea si eventual corectarea
acestor erori se utilizeaza coduri cu proprietati speciale. Aceste coduri
contin pe lnga bitii utili o serie de biti de control cu ajutorul carora se
identifica si corecteaza eventualele erori de transmisie.
Codurile detectoare de erori au urmatoarea proprietate: aparitia
unei singure erori transforma un cuvnt valid intr-un cuvnt invalid. O
metoda pentru detectia erorilor este metoda bitului de paritate a carui idee
de baza consta n adaugarea unei cifre binare in plus la fiecare cuvnt al
unui cod dat, pentru a face ca numarul de biti de 1 din fiecare cuvnt sa fie
impar sau par.
Este util sa definim distanta 8 dintre 2 coduri cuvnt ca numarul de
cifre care trebuie sa fie schimbate intr-un cuvnt pentru a rezulta alt cuvnt.
(de exemplu distanta Hamming a codului ASCII este 1).
Un cod este cod detector de erori daca distanta sa minima este mai
mare sau egala cu 2. De exemplu adaugarea unui bit de paritate plasat la
stnga codului normal ASCII al unui caracter va determina pentru acest cod
o distanta Hamming egala cu 2. Acest bit se calculeaza ca suma modulo 29
n cazul paritatii pare si cu valoarea negata a acesteia n cadrul paritatii
impare procedeu ilustrat n figura 2.6.
PI

PP

26

25

24

23

22

21

20

Caracter

0
1

1
0

1
1

1
1

0
0

0
0

1
1

0
0

0
1

d
e

Biti de paritate

Codul ASCII

Fig. 2.6. Adaugarea bitului de paritate la codul ASCII: PI


paritate impara; PP paritate para.

Prin acest procedeu se va obtine o tabela a codurilor ASCII cu 256


de caractere dintre care jumatate sunt invalide. La receptie se recalculeaza

8
9

Aceasta distanta este cunoscuta ca distanta Hamming.


0 0 = 0 0 1 = 1 1 0 = 1 1 1 = 0

13.01.2004

50 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

bitul de paritate iar la neconcordanta se va solicita retransmisia, care nu este


ntotdeauna o solutie convenabila.
n practica este larg utilizata si metoda codului polinomial
cunoscut si sub denumirea de cod cu redundanta ciclica sau cod CRC (
Cyclic Redundancy Code). CRC sunt bazate pe tratarea sirurilor de biti ca
polinoame cu coeficienti 0 si 1. De exemplu bitii cuvntului cu 6 biti
110001 se reprezinta prin polinomul
P(x) =1x5 +1x4 +0x3 +0x2 +0x1 +1x0 = x5 + x4 +1
Aritmetica polinomiala n acest caz este modulo 2, potrivit regulilor
teoriei algebrice. Nu exista transport la adunare sau mprumut la scadere,
adunarile si scaderile fiind identice, operndu-se cu functia SAUEXCLUSIV.
De exemplu
1001+
10010101
0101
1100
1100
La utilizarea acestei metode, pentru a transmite un cadru (formatie)
de biti caruia i se ataseaza un polinom Q(x) emitatorul si receptorul convin
asupra unui polinom generator P(x) a carui lungime trebuie sa fie mai mica
dect a lui Q(x).
La transmisie se procedeaza astfel:
1. se adauga la Q(x) r biti (r este gradP) obtinndu-se cadrul
mbunatatit;
2. se mparte cadrul mbunatatit la P(x);
3. restul rezultat (care are ntotdeauna r sau mai putini biti) se
scade modulo 2 din cadrul mbunatatit.
4. diferenta T(x) (divizibila modulo2 cu P(x)) este cea care se
transmite.
La receptie se efectueaza mpartirea T(x):P(x), si daca rezulta rest
nul, rezulta ca transmisia s-a efectuat corect. Refacerea lui Q(x) n caz ca
nu sunt erori presupune separarea n T(x) a r cifre din zona
nesemnificativa.
Exemplu
Fie cadrul de biti 1101101 sau Q(x)=x6 + x5 + x3 + x2 +1

13.01.2004

51 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

Polinomul generator este 1011 sau P(x)=x3 + x+1


Sa se determine cadrul transmis T(x), din care sa se refaca apoi
Q(x) respectiv cadrul de biti initial.
1. Se adauga 3 biti (gradul lui P(x) este 3) la cadrul initial
obtinndu-se cadrul mbunatatit
1101101000
2. Se mparte cadrul mbunatatit la P(x)
110
101
- 11
10
- 1
1
-

110
1
01
11
100
011
111
101
- 10
10
- -

10001011
1111101
ct =1111101
1 r
1
00
11
110
101
011

es t =0111

0
1
1

3. Se scade restul din cadrul mbunatatit si rezulta polinomul care


se transmite, respectiv T(x).
11011010000000000111
1101101111

13.01.2004

52 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

4. Verificarea la receptie, presupune efectuarea mpartirii T(x):P(x)


110
101
- 11
10
- 1
1
-

110
1
01
11
100
011
111
101
- 10
10
- -

11111011
1111101
ct =1111101
1 r
1
01
11
101
101
000

es t =0000

1
1
0

5. Restul fiind 0000 rezulta ca transmisia s-a efectuat corect, iar


refacerea cadrului initial eliminnd ultimele 3 cifre din T(x), respectiv
Q(x) = 1101101
La transmiterea datelor se folosesc urmatoarele trei polinoame
generatoare, considerate standarde internationale:
CCITT-32:
P(x) = x32 + x26 + x23 + x22 + x16 + x12 +
+x11 + x10 + x8 + x7 + x5 + x4 + x2 + x + 1
CRC-16:
P(x) = x16 + x15 + x2 + 1
CRC-CCITT:
P(x) = x16 + x12 + x5 + 1
CRC-XMODEM: P(x) = x16 + x15 + x10 + x3
12bit-CRC:
P(x) = x12 + x11 + x3 + x2 + x + 1
10bit-CRC:
P(x) = x10 + x9 + x5 + x4 + x + 1
8bit-CRC:
P(x) = x8 + x2 + x + 1

13.01.2004

53 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

Dupa cum s-a mentionat, la receptia unui mesaj eronat se cere


retransmisia acestuia. Pentru a evita retransmisia se apeleaza la codurile
corectoare de erori .
Un cod este cod corector de erori (CCE) atunci cnd cuvntul de
cod corect poate fi ntotdeauna dedus din cuvntul eronat. ntre CCE un loc
aparte revine codului Hamming, care n cazul unei corectii singulare are
distanta 3. Numarul minim de biti de control pentru a asigura aceasta
distanta se determina cu relatia
2k m + k + 1 ,
(2.29)
unde m este numarul de biti de informatie, iar k - numarul de biti de
control.
Vom explica n continuare constructia unui cod Hamming cu m = 7
(mesaj original in ASCII). Din relatia lui Hamming (2.29) rezulta k = 4,
astfel nct 4 biti de control trebuie adaugati celor 7 biti de informatie,
rezultnd un cod ASCII pe 11 biti cu 4 biti redundanti.
Asignarea celor 4 biti redundanti la cuvintele originale se va face
astfel nct sa poata fi identificata o eroare la un singur bit. Fiecarui bit din
cuvntul codificat, incluznd si bitii redundanti de verificare i este asignata
de biti C8 C4 C2 C1 , corespunzator Tabelului 2.13. n acest tabel echivalentul
zecimal al combinatiilor binare reprezinta pozitia bitilor care sunt verificati
ncepnd cu pozitia 1. n cuvntul de 11 biti care se transmite C1 ocupa
pozitia 1, C2 a doua s.a.m.d. , conform reprezentarii din figura 2.7.

Tabelul 2.13

13.01.2004

C8

C4

C2

C1

D0
0
0
0
0
0
0
1
1
1
1

0
0
0
1
1
1
1
0
0
0
0

0
1
1
0
0
1
1
0
0
1
1

1
0
1
0
1
0
1
0
1
0
1

Pozitie bit
verificat
1
2
3
4
5
6
7
8
9
10
11

54 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

11
B7

10
B6

9
B5

8
C8

7
B4

6
B3

5
B2

4
C4

3
B1

2
C2

1
C1

Fig. 2.7. Structura unui cuvnt ASCII cu patru biti de verificare:


Bi biti utili; Cj - biti de verificare.

Modul de amplasare a bitilor de verificare n pozitii corespunznd


puterilor lui 2, se numeste Cod de Corectare a unei Erori Singulare
(CCES) sau Single Error Connecting (SEC), si faciliteaza procesul de
localizare a erorii.
Valorile celor 4 biti de verificare sunt determinati functie de
paritatea (para sau impara avuta n vedere) prin evaluarea sumelor modulo
2 S1 , S1 , S4 , S8 . conform relatiilor de mai jos:
S1 = C1 B1 B2 B4 B5 B7
S 2 = C 2 B1 B3 B4 B6 B7
S 4 = C 4 B2 B3 B4
S8 = C8 B5 B6 B7

(2.30)
(2.31)
(2.32)
(2.33)

Sumele Si trebuie sa realizeze paritatea para pentru pozitiile care au


1 n coloanele aferente bitilor de verificare Ci dupa cum urmeaza:
S1
S2
S4
S8

= 0 pentru grupul de biti {1,3,5,7,9,11} ;


= 0 pentru grupul de biti {2,3,6,7,10,11} ;
= 0 pentru grupul de biti {4,5,6,7} ;
= 0 pentru grupul de biti {8,9,10,11} .

Din relatiile (2.30)(2.33) rezulta (impunnd tipul paritatatii)


valorile care se vor transmite pentru bitii de control C1 , C2 , C4 , C8 . La
receptie se evalueaza sumele, iar cnd acestea corespund tipului paritatii
transmise, transmisia se considera corecta. n cazul cnd una sau mai multe
sume nu corespund tipului de paritate, exista un bit eronat a carui pozitie se
determina prin adunarea indicilor sumelor eronate 10 .

10

Se are n vedere faptul ca un bit n este verificat de catre bitii ale caror pozitii
nsumate dau n (de exemplu bitul 7 este verificat de catre bitii din pozitiile 1, 2, 4
deoarece 1+2+4=7.

13.01.2004

55 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

n cele ce urmeaza se va considera un exemplu pentru care se va


presupune paritate para (suma 0 la un numar par de biti 1).
1. Sa se determine bitii reduntanti de verificare la transmisia
codului ASCII al caracterului a (9710 = 1100001)
11
B7
1

10
B6
1

9
B5
0

8
C8
?

7
B4
0

6
B3
0

5
B2
0

4
C4
?

3
B1
1

2
C2
?

1
C1
?

S1 = C1 B1 B2 B4 B5 B7 = 0 C1 1 0 0 0 1 = 0 C1 = 0
S 2 = C 2 B1 B3 B4 B6 B7 = 0 C2 1 0 0 1 1 = 0 C2 = 1
S 4 = C4 B2 B3 B4 = 0 C4 0 0 0 = 0 C4 = 0
S8 = C8 B5 B6 B7 = 0 C8 0 1 1 = 0 C8 = 0

astfel nct se transmite urmatoarea formatie de 11 biti


11
B7
1

10
B6
1

9
B5
0

8
C8
0

7
B4
0

6
B3
0

5
B2
0

4
C4
0

3
B1
1

2
C2
1

1
C1
0

2. Sa se determine ce caracter a fost transmis daca a fost


receptionata urmatoarea formatie de 11 biti 10010111001 (7 biti ai codului
ASCII si 4 biti de verificare
11
B7
1

10
B6
0

9
B5
0

8
C8
1

7
B4
0

6
B3
1

5
B2
1

4
C4
1

3
B1
0

2
C2
0

1
C1
1

Se evalueaza sumele Si
S1 = C1 B1 B2 B4 B5 B7 = 1 0 1 0 0 1 = 1 impar a
S 2 = C2 B1 B3 B4 B6 B7 = 0 0 1 0 1 0 = 0 para
S 4 = C 4 B2 B3 B4 = 1 1 1 0 = 1 C4 impar a
S8 = C8 B5 B6 B7 = 1 0 0 1 = 0 para

13.01.2004

56 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

de unde rezulta ca S1 si S4 sunt impare, un bit a fost transmis eronat


a carui pozitie este 1+4=5 deci bitul numarul 5 trebuie corectat astfel nct
formatia de 11 biti devine

11
B7
1

10
B6
0

9
B5
0

8
C8
1

7
B4
0

6
B3
1

5
B2
0

4
C4
1

3
B1
0

2
C2
0

1
C1
1

Se extrag bitii de control din pozitiile 1, 2, 4, 8 astfel nct rezulta


11
B7
1

10
B6
0

9
B5
0

8
C8
-

7
B4
0

6
B3
1

5
B2
0

5
B5
0

4
B4
0

3
B3
1

2
B2
0

1
B1
0

4
C4
-

3
B1
0

2
C2
-

1
C1
-

Respectiv
7
B7
1

6
B6
0

Vectorul binar este (1000100) 2 = (68)10 care este codul ASCII al


caracterului D.
Observatii
1.
n cazul aparitiei a doua erori acestea pot fi detectate,
nsa numai una poate fi corectata. Pentru a corecta 2
erori distanta Hamming minima trebuie sa fie 5. n
general pentru a detecta p erori distanta Hamming
trebuie sa fie p+1 , iar pentru corectarea a p erori
aceasta distanta trebuie sa fie 2p+1.
2.
Schema de detectare si corectare a unei erori poate fi
vizualizata pe un hipercub n vrfurile caruia sunt
plasate codurile valide si invalide. Distanta Hamming
separa codurile valide, n timp ce un cod invalid este
plasat mai aproape de un cod valid, aspect ce faciliteaza
detectarea si corectarea unei erori singulare.

13.01.2004

57 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

2.4. Operatii aritmetice n virgula fixa


2.4.1. Adunarea si scaderea binara
Cele doua operatii vor fi tratate pentru reprezentarea n codurile
direct, complementar si invers.
2.4.1.1.Adunarea si scaderea n cod direct
Cele doua operatii vor fi tratate unitar conform relatiei:
op = xs y s sop
(2.34)
unde :
op reprezinta operatia efectiva ce se va efectua ntre cei doi
operanzi;
xS , yS - semnele celor doi operanzi (1 pentru -, 0 pentru +);
sOP
- operatia ce se doreste a fi efectuata ( 1 pentru -, 0 pentru +).
n ceea ce priveste operatia (sau exclusiv) dupa cum s-a mai
aratat aceasta este definita astfel:
0 0 = 0;
0 1 = 1;
1 0 = 1;
1 1 = 0.
Pe baza celor prezentate, valoarea operatorului op se determina cu
ajutorul Tabelului 2.14.
Tabelul 2.14
xs
ys
Sop
Op
xs
ys
Sop
Op
0
0
0
0
+
+
+
+
0
0
1
1
+
+
0
1
0
1
+
+
0
1
1
0
+
+
1
0
0
1
+
+
1
0
1
0
+
+
1
1
0
0
+
+
1
1
1
1
n cazul n care prin evaluarea semnelor rezulta scadere,
scazatorul va putea fi nlocuit prin complementul sau fata de 2 (C2),

13.01.2004

58 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

operatia fiind practic nlocuita cu o operatie de adunare11 , n Tabelul 2.15


fiind prezentate cele 4 situatii posibile.
Tabelul 2.15
Situatii
posibile
Operatia de
executat

(+ A) + (+ B )

(+ A) + ( B)

( A ) + ( + B)

( A ) + ( B )

A+ B

A+B

A+B

A+ B

Adunarea numerelor se executa asupra cifrelor numerelor A si B n


conformitate cu regulile adunarii binare. Semnul sumei C precum
corectitudinea rezultatului obtinut se stabilesc n functie de existenta
(Tabelul 2.16) sau nu a (Tabelul 2.17) transportului de la CCMS12 la bitul
de semn.
Tabelul 2.16
Semnul
rezultatului
Cs
Semnificatia
sumei

(+ A) + (+ B )

(+ A) + ( B)

( A ) + ( + B)

( A ) + ( B )

+(0)

-(1)

-(1)

-(1)

Adevarata
marime C

(rezultat
corect)

Compleme
ntul C2
Recomple
mentare
(rC2)

Adevarata
marime C

Corectie

Compleme
ntul C2
Recomple
mentare
(rC213 )

Nu

Nu (rezultat
corect)
Tabelul 2.17

Semnul
rezultatului
Cs
Semnificatia
sumei
Corectie

(+ A) + (+ B )

(+ A) + ( B)

( A ) + ( + B)

( A ) + ( B )

+(0)

+(0)

+(0)

-(1)

Adevarata
marime C

Adevarata
marime C

Adevarata
marime C

Adevarata
marime C

Eroare de
depasire

Nu
(rezultat
corect)

Nu
(rezultat
corect)

Eroare de
depasire

Acest lucru este posibil deoarece A B = A + (0 B ) = A + B


CCMS Cifra Cea Mai Semnificativa
13
rC2 recomplementare, operatiile se fac invers celor de la obtinerea C2 (se
scade 1, dupa care complementeaza).
11
12

13.01.2004

59 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

START
Citeste operanzii A, B
si semnele As si Bs
<

>
As : Bs
=

A*= A

A*= A

A*= C2(A)

B*= C2(B)

B*= B

B*= B

C* = A*+ B*

Da

Nu
Transport ?
Da

Da

Nu

As = Bs

As = Bs

Nu
Cs = 1 (-)

Cs=As

Cs = 0 (+)
C= C*

C = rC2(C*)
C= C*

Scrie suma C si
semnul Cs

Semnaleaza eroare
depasire

STOP

13.01.2004

60 / 104

Cs=As

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

Algoritmul descris n Tabelele 2.16 si 2.17 poate fi transpus n


schema logica simplificata din figura 2.8.
Exemplu
Fie A=(10/16) 10 = (0.625) 10 si B=(7/16) 10 = (0.4375) 10 reprezentate n
binar pe cinci biti (patru pentru valoare, unul pentru semn) prin
A=(01010)2 si B=(00111)2
Sa se calculeze C1 =A+B, C2 =A-B, C3 =-A+B, C4 =-A-B
C1 * = A + B

1 0
0 1
0 0

0
0
0

1
1
0

0 +
1
1

1
S-a generat transport de la CCMS la bitul de semn numerele A si B fiind
de acelasi semn rezultatul este incorect deoarece se depaseste capacitatea
de reprezentare pe 4 biti - ntr-adevar (0.625) 10 + (0.4375) 10 = (1.0625) 10
obtinndu-se un numar supraunitar.
C2 * = A - B =
= A + C2(B)
C2 = C2 *

0 1
1 1
0
1
0 0

0
0
0

1 0
0 1
1 1

1 1

S-a generat transport de la CCMS la bitul de semn numerele A si B fiind


de semne contrare rezultatul este corect ncadrndu-se n capacitatea de
reprezentare pe 4 biti - ntr-adevar (0.625) 10 - (0.4375) 10 = (0.1675) 10
obtinndu-se un numar subunitar respectiv 1/8 + 1/16 = 3/16

13.01.2004

C3 * = -A + B =
= C2(A) + B

1
0
1

0 1
0 1
1 1

1
1
0

0 +
1
1

C3 = rC2(C2 * )

0 0

61 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

Nu s-a generat transport de la CCMS la bitul de semn rezultatul pe 4 biti


obtinndu-se prin recomplementare -(1/8+1/16)=-3/16.
C4 * = -A - B

1
1

1 0
0 1
0 0

1
1
0

0 +
1
1

1
S-a generat transport de la CCMS la bitul de semn numerele A si B fiind
de acelasi semn rezultatul este incorect deoarece se depaseste capacitatea
de reprezentare pe 4 biti - ntr-adevar -(0.625) 10 - (0.4375) 10 = -(1.0625) 10
obtinndu-se un numar supraunitar n valoare absoluta.
2.4.1.2. Adunarea si scaderea n cod complementar
Pentru efectuarea operatiilor de adunare si scadere cu operanzi
reprezentati n C2 exista 4 metode:
- adunarea directa;
- scaderea directa;
- adunarea prin scaderea complementului;
- scaderea prin adunarea complementului.
La oricare din aceste 4 metode bitul de semn este tratat ca un bit al
numarului. Utilizarea C2 face posibila transformarea scaderii n adunare
motiv pentru care n cele ce urmeaza va fi tratata numai aceasta operatie. n
Tabelul 2.18 sunt prezentate cele 4 situatii care pot aparea la adunarea a
doua numere A si B exprimate n C2.
Tabelul 2.18
Situatii
posibile
Operatia de
executat

(+ A) + (+ B)

(+ A) + ( B)

( A ) + ( + B)

( A ) + ( B )

A+ B

A+B

A+B

A +B

Adunarea numerelor se executa asupra cifrelor numerelor A si B n


conformitate cu regulile adunarii binare. Adunarea se efectueaza rang cu
rang, ncepnd cu rangurile mai putin semnificative, inclusiv rangurile de
semn. Eventualul transport care apare la stnga rangului de semn se
neglijeaza.

13.01.2004

62 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

Interpretarea rezultatului si eventualele corectii necesare sunt


prezentate n Tabelul 2.19 (nu exista transport de la CCMS) si Tabelul 2.20
(exista transport de la CCMS)
Tabelul 2.19
Semnul
rezultatului
Cs
Semnificatia
sumei

(+ A) + (+ B )

(+ A) + ( B)

( A ) + ( + B)

( A ) + ( B )

+(0)

-(1)

-(1)

-(1)

Adevarata
marime C

Compleme
ntul C2

Compleme
ntul C2

Compleme
ntul C2

Nu

Nu

Nu

Corectie

(rezultat
corect)

(rezultat
corect

(rezultat
corect

Eroare de
depasire

Tabelul 2.20
Semnul
rezultatului
Cs
Semnificatia
sumei
Corectie

(+ A) + (+ B )

(+ A) + ( B)

( A ) + ( + B)

( A ) + ( B )

+(0)

+(0)

+(0)

-(1)

Adevarata
marime C

Adevarata
marime C

Adevarata
marime C

Complement
ul C2

Eroare de
depasire

Nu
(rezultat
corect)

Nu
(rezultat
corect)

Nu (rezultat
corect

Exemplu
Fie A=(8/16) 10 = (0.5) 10 si B=(7/16) 10 = (0.4375) 10 reprezentate n
binar pe cinci biti (patru pentru valoare, unul pentru semn) prin
A=(01000)2 si B=(00110)2
Sa se calculeze C1 =A+B, C2 =A-B, C3 =-A+B, C4 =-A-B prin
reprezentare n C2 pe 5 biti
C1 = A + B

13.01.2004

0
0
0

1 0
0 1
1 1

0
1
1

63 / 104

0 +
0
0

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

Nu s-a generat transport de la CCMS la bitul de semn numerele A si B


fiind pozitive rezultatul este corect - ntr-adevar (0.5) 10 + (0.4375) 10 =
(0.9375) 10 obtinndu-se un numar subunitar reprezentabil cu semn pe 5
biti.
C2 = A - B =
= A + C2(B)

C2 = C2 *

0 1
1 1
0
1

0
0
0

0 0

0 0
1 0
1 0

Transport de la
CCMS

1 0

Transport de la bitul
de semn se ignora

S-a generat transport de la CCMS la bitul de semn numerele A si B fiind


de semne contrare rezultatul este corect ncadrndu-se n capacitatea de
reprezentare pe 4 biti - ntr-adevar (0.5) 10 - (0.4375) 10 = (0.0625) 10
obtinndu-se un numar subunitar reprezentabil cu semn pe 5 biti.
C3 = -A + B =
= C2(A) + B

1
0
1

1 0
0 1
1 1

0
1
1

0 +
0
0

C3 = rC2(C3 )

0 0

Nu s-a generat transport de la CCMS la bitul de semn rezultatul pe 4 biti


obtinndu-se prin recomplementare 0.5+0.4375=-0.0625.
C4 = -A - B

1
1
1
1
1

1 0
1 0
0 0

0
1
1

0 +
0
0

Transp. De la
CCMS

0 0

Transport de la bitul
de semn se ignora

S-a generat transport de la CCMS la bitul de semn numerele A si B fiind


de acelasi semn rezultatul este corect deoarece nu se depaseste capacitatea

13.01.2004

64 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

de reprezentare pe 4 biti - ntr-adevar -(0.5) 10 - (0.4375) 10 = -(0.9375) 10


obtinndu-se un numar subunitar n valoare absoluta.
n cazul n care operanzii sunt numere ntregi, adunarea se
efectueaza rang cu rang, ncepnd cu rangurile mai putin semnificative,
inclusiv rangurile de semn, transportul care rezulta de la acestea neglijnduse.
Fie operanzii:
x = xn 2 xn 1 .......... x1 x0

(2.35)

y = yn 2 yn 1 .......... y1 y0

n conditiile
2 n1 x 2n 1 1

(2.36)

2 n1 y 2n 1 1

La adunarea / scaderea celor doi operanzi apar situatiile evidentiate


n cele ce urmeaza.
a)

x > 0, x > 0, dar x + y 2n 1 1

atunci[x ]c + [y ]c = x + y = [ x + y ]c

(2.37)

Exemplu
Fie n = 4 si x = + 3 si y = +2

[+ 3]c + [+ 2]c = 0011 + 0010 = 0101 = [0101]c = [+ 5]c

a)

x > 0, x > 0, dar x + y 2n 1 1

(2.38)

atunci[x ]c + [y ]c = x + y = [ x + y ]c

Exemplu
Fie n = 4 si x = + 3 si y = +2

[+ 3]c + [+ 2]c = 0011 + 0010 = 0101 = [0101]c = [+ 5]c

b)

x > 0, x > 0, dar 0 < x + y 2 n1 1


atunci[x ]c + [ y ]c = 2n x + y = [x + y]c
transport, se
neglijeaza

13.01.2004

>0

65 / 104

(2.39)

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

Exemplu
Fie n = 4 si x = - 6 si y = +7

[ 6]c + [+ 7]c = 24

0110 + 0111 =10000 0110 + 0111 =

= 1010 + 0111 = 0111 = 10001 = [1]c


transport, se
neglijeaza

c)

x < 0, y > 0, dar x + y < 0


atunci[x ]c + [ y ]c = 2n x + y = [x + y]c

(2.40)

<0

Exemplu
Fie n = 4 si x = - 7 si y = +6

[ 7]c + [+ 6]c = 24

0111 + 0110 =10000 0111 + 0110 =

= 1001 + 0110 = 1111 = [1111 ]c = 1001 = 1

d)

x < 0, y < 0, dar x + y 2 n -1 1


atunci[x ]c + [y ]c = 2n x + 2n y = [x + y]c

(2.41)

Transport se
neglijeaza
<0

Exemplu
Fie n = 4 si x = - 3 si y = -2

[ 3]c + [ 2]c = 24

0011 + 2 4 0010 = 10000 0011 +

+ 10000 0010 = 1101 + 1110 = 1 1011 = [1011 ]c = 1101 = 5

2.4.1.3. Adunarea si scaderea n cod invers


Pentru numerele exprimate n C1 exista de asemenea patru metode
de realizare a operatiilor de adunare si scadere si anume:
- adunarea directa;
- scaderea directa;
- adunarea prin scaderea complementului fata de 1;
- scaderea prin adunarea complementului fata de 1.

13.01.2004

66 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

La oricare din aceste 4 metode bitul de semn este tratat ca un bit al


numarului. Si utilizarea C1 face posibila transformarea scaderii n adunare
motiv pentru care n cele ce urmeaza va fi tratata numai aceasta operatie. n
Tabelul 2.21 sunt prezentate cele 4 situatii care pot aparea la adunarea a
doua numere A si B exprimate n C1.
Tabelul 2.21
Situatii
posibile

(+ A) + (+ B)

Operatia de
executat

A+ B

(+ A) + ( B)

( A ) + ( + B)

A+B

A+B

( A ) + ( B )
A+B

Adunarea numerelor se executa asupra cifrelor numerelor A si B n


conformitate cu regulile adunarii binare. Adunarea se efectueaza rang cu
rang, ncepnd cu rangurile mai putin semnificative, inclusiv rangurile de
semn. Eventualul transport care apare la stnga rangului de semn se aduna
la rangul cel mai putin semnificativ.
Interpretarea rezultatului si eventualele corectii necesare sunt
prezentate n Tabelul 2.22 (nu exista transport la CCMS) si Tabelul 2.23
(exista transport la CCMS)
Tabelul 2.22
Semnul
rezultatului
Cs
Semnificatia
sumei

(+ A) + (+ B )

(+ A) + ( B)

( A ) + ( + B)

( A ) + ( B )

+(0)

-(1)

-(1)

-(1)

Adevarata
marime C

Compleme
ntul C1

Compleme
ntul C1

Compleme
ntul C1-1

Nu

Nu

Nu

Corectie

(rezultat
corect)

(rezultat
corect

(rezultat
corect

Eroare de
depasire (se
aduna 1)

Tabelul 2.23
Semnul
rezultatului
Cs

(+ A) + (+ B )

(+ A) + ( B)

( A ) + ( + B)

( A ) + ( B )

+(0)

+(0)

+(0)

-(1)

Semnificatia
sumei C

Adevarata
marime C

Adevarata
marime
C-1

Adevarata
marime
C-1

C1-1

Corectie

Eroare de
depasire

13.01.2004

Se aduna 1 Se aduna 1

67 / 104

Se aduna 1

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

Exemplu
Fie A=(4/16) 10 = (0.25) 10 si B=(11/16) 10 = (0.6875) 10 reprezentate n
binar pe cinci biti (patru pentru valoare, unul pentru semn) prin
A=(00100)2 si B=(01011)2
Sa se calculeze C1 =A+B, C2 =A-B, C3 =-A+B, C4 =-A-B prin
reprezentare n C2 pe 5 biti
C1 = A + B

0 1
1 0
1 1

0
0
0

0
1
1

0 +
1
1

Nu s-a generat transport de la bitul de semn numerele A si B fiind


pozitive rezultatul
este corect - ntr-adevar (0.25) 10 + (0.6875) 10 =
(0.9375) 10 obtinndu-se un numar subunitar reprezentabil cu semn pe 5
biti.
C2 = A - B =
= A + C1(B)
C2 =rC1(C2)

0
0
1
0

0
1
1
1

1
1
0
1

0
0
0
1

0
0
0
1

Nu s-a generat transport de la bitul de semn numerele A si B fiind de


semne contrare rezultatul este corect ncadrndu-se n capacitatea de
reprezentare pe 4 biti - ntr-adevar (0.25) 10 - (0.6875) 10 = (- 0.4375) 10
obtinndu-se un numar subunitar n C1 reprezentabil cu semn pe 5 biti.
C3 = -A + B =
= C1(A) + B

1
0
0

1 0
1 0
0 1

1
1
1

0 1

1 +
1
0
1
1

Nu s-a generat transport de semn rezultatul obtinndu-se direct respectiv


0.25+0.6875=0.4375.
C4 = -A - B = 1
= C1(A) +
1

13.01.2004

1 0
0 1

1
0

68 / 104

1 +
0

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

+ C1(B)

1 1

1
C2 =rC1(C2)1 1

0 0
1 1

0
1

1
1
0
1

S-a generat transport de la bitul de semn numerele A si B fiind de acelasi


semn rezultatul este corect deoarece nu se depaseste capacitatea de
reprezentare pe 4 biti - ntr-adevar -(0.25) 10 - (0.6875) 10 = -(0.9375) 10
obtinndu-se un numar subunitar n valoare absoluta.
2.4.2. nmultirea binara
Operatia de nmultire a numerelor consta n generarea si adunarea
produselor partiale obtinute prin nmultirea rangului curent al
nmultitorului cu denmultitul.
n cazul numerelor binare produsul partial poate fi:
- chiar denmultitul deplasat spre stnga conform pozitiei
rangului mpartitorului, daca bitul asociat acestui rang este 1;
- 0 daca bitul asociat rangului curent al mpartitorului este 0.
Daca produsul partial este diferit de zero, acesta se va aduna la
suma produselor partiale anterioare.
n continuare vor fi tratata nmultirea numerelor exprimate n cod
direct si complementar precum, nmultirea cu puteri ale lui 2 si nmultirea
cu mai multe cifre..
2.4.2.1.nmultirea n cod direct
Fie operanzii exprimati n cod direct:
X = x n 1 xn 2 .......... ... x2 x1 x0
Y = yn 1 y n 2 .......... ... y 2 y1 y0

prin caror nmultire se va obtine produsul


Z = z 2 n 2 z 2 n3 .......... ... z 2 z1 z0

Semnul produsului se determina


reprezentarilor pentru semnele operanzilor
z 2 n 2 = xn 1 y n 1

13.01.2004

ca

suma

modulo
(2.42)

69 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

unde z2n-2 , xn-1 si yn-1 , sunt semnele produsului si ale celor doi
factori. Prin aplicarea relatiei (2.42) se obtin cazurile particulare evidentiate
mai jos.
0 0 = 0
0 1 = 1
1 0 =1
1 1 = 0

; ( +) ( + )
; ( + ) ( )
; ( ) ( + )
; ( ) ( )

=+
=
=
=+

(2.43)

Produsele partiale P0, P1, .,Pn-3,Pn-2 se determina dupa cum


urmeaza:
P0 = x y0 2 0
P1 = x y1 21

(2.44)

.......... .......... ..
Pn 2 = x yn 2 2n 2

iar suma lor va conduce la produsul modulelor respectiv


Z = z 2 n3 .............z 2 z1 z 0

Daca este necesara aducerea numarului la lungime simpla, aceasta


se poate realiza prin trunchiere si rotunjire .
Exemple
1. Se dau numerele X = -27, Y = 23 si se cere sa se reprezinte n
semn-marime, iar apoi sa se efectueze produsul Z = X Y, utiliznd metoda
adunarilor repetate.
(X)2 = 1 11011
(Y)2 = 0 10111
Semnele celor doua numere sunt x5 = 1, y5 = 0 de unde rezulta
z10 = x5 y5 = 1 0 = 1 (negativ)
Avnd n vedere ca n=6 (pozitii binare, inclusiv bitul de semn
rezulta ca modulul va avea 10 pozitii)

13.01.2004

70 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

Se nmultesc cele doua module:


11011 x
10111
0000011011
0000110110
0001101100
0000000000
0110110000
1001101101

denmultit
nmultitor
0
x 2
(xstnga 0 pozitii)
x 21
(xstnga 1 pozitie)
2
x 2
(x stnga 2 pozitii)
0 pentru ca y3 = 0
x 24 (xstnga 4 pozitii)
produs

Produsul reprezinta suma calculata simultan pentru toate cele cinci


produse partiale. Avnd n vedere ca n calculator se executa la un moment
dat numai suma a doua numere, nmultirea se poate efectua conform
etapizarii prezentate mai jos.
11011x
denmultit
10111
nmultitor
0000000000
suma initiala
11011
primul produs partial
0000011011
prima suma
11011
al doilea produs partial
0001010001
a doua suma
11011
al treilea produs partial
0010111101
a treia suma
00000
al patrulea produs partial
0010111101
11011
1001101101

a patra suma
al cincilea produs partial
produs

Prin ambele metode rezulta |Z| = 1001101101 respectiv


Z = 1 1001101101.
Verificare:

13.01.2004

xy = -621.
p = - (129 + 126 + 125 + 123 +122 +1) =
= - (512 + 64 + 32 + 8 + 4 +1) = - 621.

71 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

2. Se dau numerele X = 0.8125, Y = -0.6875 si se cere sa se


reprezinte n semn-marime, iar apoi sa se efectueze produsul Z = X Y,
utiliznd metoda adunarilor repetate.
(X)2 = 0 .1101
(Y)2 = 1 .1011
Semnele celor doua numere sunt x4 = 0, y4 = 1 de unde rezulta
z8 = x4 y4 = 0 1 = 1 (negativ)
Se nmultesc apoi cele doua module.
.1101 x
denmultit
.1011
nmultitor
0
00001101
x 2
(xstnga 0 pozitii)
1
00011010
x 2
(xstnga 1 pozitie)
00000000
0 pentru ca y2 = 0
01101000
x 23 (xstnga 3 pozitii)
1.10001111
produs
Alt mod (clasic)
1101 x
1011
1101
1101
1101
1.10001111
Verificare: 0.8125 (-0.6875) = -0.5585937
1.10001111 = -(12-1 +12-5 +12-6 +12-7 +12-8 )=
=-(0.5+0.03125+0.015625+7.812510-3 +3.9062510-3 )= -0.5585937
n acest caz se poate face trunchiere si rotunjire. Pentru exprimarea
pe 5 biti (din care unul pentru semn) se ndeparteaza ultimii 4 biti. Daca cel
mai semnificativ bit ndepartat este 1 rezultatul se rotunjeste (se adauga 1).
p = 1.1000 1111

MSB

p 1.1000 +
1
1.1001

Verificare Z = - (12-1 +12-4 ) = -(0.5 + 0.0625) = 0.5625.

13.01.2004

72 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

Eroarea relativa de rotunjire va fi

er =

0.5585937 0.5625
0.5585937

100 = 0.7%

2.4.2.2.nmultirea n cod complementar


n continuare vor fi prezentate trei metode de realizare a nmultirii
numerelor exprimate n C2.
Metoda 1 se apropie de nmultirea numerelor n cod direct si
presupune parcurgerea urmatoarelor etape:
- se modifica (daca situatia o impune) semnele denmultitului si
nmultitorului astfel nct nmultitorul sa devina pozitiv;
- produsele partiale se calculeaza n mod obisnuit;
- deplasarea spre stnga/dreapta se realizeaza conform regulilor
de mai jos.
Daca x>0
[x] c=0 xn-2 xn-3..x1 x0
Deplasarea la stnga
[2x] c= xn-2 xn-3..x1 x0 0
Deplasarea la dreapta
[2-1 x]c= 0 0 xn-2 xn-3..x1

Daca x<0
[x] c=1 xn-2 xn-3..x1 x0
Deplasarea la stnga
[2x] c= xn-2 xn-3..x1 x0 0
Deplasarea la dreapta
[2-1 x]c= 1 1 xn-2 xn-3..x1
Metoda 2 presupune nmultirea numerelor cu semn exprimate n
C2 n maniera obisnuita ca si cnd ar fi vorba de numere fara semn.
Rezultatul va fi corect numai daca numerele sunt pozitive, n caz contrar
sunt necesare corectii.

13.01.2004

73 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

x > 0, y > 0,

a.

(2.45)

[x ]c [ y]c = x y = [x y]c

Exemplu
Fie n = 5 si x = + 17 si y = +12

[x ]c = 17 = 17 [ y ]c = 12
[z ]c = 17 12 = 204

= 12

Valoarea produsului este P=(17)?(12)= 204 , respectiv [P]c = [z]c .


x < 0, y > 0, [x ]c = 2 n x ; [ y]c = y

b. [z ]c = [x]c [ y ]c = 2 n y x y rezultat incorect

[z ]c = [x]c [ y ]c = 2 2n x y

(2.46)

rezultat corect

Rezultatul este incorect deoarece reprezentarea produsului se va


face p 2n biti. n aceste conditii se impune o corectie cu 2 2 n 2n y care se
aplica rezultatului incorect (reamintim ca n este numarul de biti asociat
reprezentarii modulului.
Exemplu
Fie n = 5 si x = - 17 si y = +12

[x ]c = 25 17 = 32 17 = 15 [ y]c = 12 = 12
[z ]c incorect = 25 12 17 12 = 32 12 17 12 = 384 204 = 180
[z ]c corect = 210 17 12 = 1024 17 12 = 1024 204 = 820
cor = 210 25 12 = 1024 32 12 = 1024 384 = 640

[z ]c corect = [z ]c incorect+ cor = 180 + 640 = 820


Valoarea produsului este P=(-17)?(12)=-204

iar n cazul unei


reprezentari pe 10 biti [P]c = 210 - ?-204 ?= 1024 204 = 820. Din calculele
anterioare rezulta egalitatea celor doua produse respectiv [P]c = [z]c corect

13.01.2004

74 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

x > 0, y < 0, [x ]c = x ; [ y]c = 2 n y

c. [z ]c = [x]c [y ]c = 2 n x x y rezultat incorect

[z ]c = [x]c [y ]c = 2 2 n x y

(2.47)

rezultat corect

Rezultatul este incorect deoarece reprezentarea produsului se va


face p 2n biti. n aceste conditii se impune o corectie cu 22 n 2n x care se
aplica rezultatului incorect.
Exemplu
Fie n = 5 si x = + 17 si y = -12

[x ]c = 17 = 17 [ y ]c = 25 12 = 32 12 = 10
[z ]c incorect = 25 17 17 12 = 32 17 17 12 = 544 204 = 440
[z ]c corect = 210 17 12 = 1024 17 12 = 1024 204 = 820
cor = 210 25 17 = 1024 32 17 = 1024 544 = 480 (corector)

[z ]c corect = [z ]c incorect+ cor = 440 + 480 = 820


Valoarea produsului este P=(17)?(-12)=-204

iar n cazul unei


reprezentari pe 10 biti [P]c = 2 - ?-204 ?= 1024 204 = 820. Din calculele
anterioare rezulta egalitatea celor doua produse respectiv [P]c = [z]c corect
10

x < 0, y < 0, [x]c = 2 n x ; [ y]c = 2 n y

d.

[z ]c = [x]c [y ]c = 2 2 n 2 n x 2 n y +

x y

(2.48)

rezultat incorect

[z ]c = [x]c [y ]c =

x y rezultat corect

Se impune o corectie cu 2 2n + 2n x + 2n y care se aplica


rezultatului incorect.
Exemplu
Fie n = 5 si x = - 17 si y = -12

13.01.2004

75 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

[x ]c = 25 17 = 32 17 = 15 [ y]c = 25 12 = 32 12 = 20
[z ]c incorect = 210 25 17 25 12 + 17 12 =
= 1024 32 17 32 12 + 17 12 = 1024 544 384 + 204 = 300

[z ]c corect =

17 12 = 17 12 = 204

cor = 210 + 25 17 + 25 12 = 1024 + 32 17 + 32 12 =


= 1024 + 544 + 384 = 1024 + 928 = 96 ( corector)

[z ]c corect = [z ]c incorect+ cor = 300 96 = 204


Valoarea produsului este P=(-17)?(-12)=204 iar n cazul unei
reprezentari pe 10 biti [P]c = 204 = 820. Din calculele anterioare rezulta
egalitatea celor doua produse respectiv [P]c = [z]c corect
Metoda 3 (algoritmul lui Both) presupune nmultirea numerelor cu
semn exprimate n C2 fara a fi necesare corectii sau testarea separata a
bitilor de semn.
Valoarea unui numar Y reprezentat n C2 se poate calcula astfel
Y = yn 1 2n 1 + yn 2 2n 2 + yn 3 2n 3 + ... + y1 21 + y 0 20
(2.49)
respectiv
Y = yn 1 2n 1 + yn 2 (2 n 1 2n 2 ) + yn 3 ( 2n 2 2 n 3 ) +
+ .......... + y1 ( 22 21 ) + y 0 ( 21 20 )

sau
Y = ( yn 2 y n1 ) 2n 1 + ( y n 3 y n 2 ) 2 n 2 + ..... +
+ ( y 2 y3 ) 23 + ( y1 y2 ) 2 2 + ( y0 y1 ) 21 + ( y1 y0 ) 20

(2.50)

Relatia (2.50) se poate restrnge sub forma


n 1

(yi1 yi ) 2i

Y=

(2.51)

i= 0

unde
- yn-1 este rangul de semn;
- y-1 rangul aflat la dreapta rangului 0 si care initial are
valoarea 0.

13.01.2004

76 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

aceste

X Y =

conditii

se

poate

exprima

produsul

X?Y

n 1

X ( y i 1 y i ) 2 i .

(2.52)

i= 0

care permite calculul produsului partial de rang i conform Tabelului


2.24
Tabelul 2.24
yi-1

yi

yi-1 - yi

Produsul partial

-1

-X2i

X2i

2.4.2.3.nmultirea cu puteri ale lui 2


O categorie speciala de nmultire o reprezinta nmultirea cu puteri
ale bazei 2 respectiv cu 2k , care presupune deplasari dupa cum urmeaza:
k>0 deplasare stnga cu k pozitii (se adauga zerouri n pozitiile
nesemnificative din dreapta ramase libere);
k<0 deplasare dreapta cu k pozitii (se adauga zerouri n pozitiile
semnificative ramase libere).
Exemple
1. 28 22 = 112
7 6 5 4 3 2 1 0 Stnga 2 pozitii
7 6 5 4 3 2 1 0
0 0 0 1 1 1 0 0
0 0 0 1 1 1 0 0 0 0
Zerouri adaugate

Verificare 126 + 125 +124 = 64 + 32 + 16 = 112


2. 28 / 22 = 28 2-2 = 7
7 6 5 4 3 2 1 0 Dreapta 2 pozitii7 6 5 4 3 2 1 0
0 0 0 1 1 1 0 0
0 0 0 1 1 1 0 0 0 0
Zerouri adaugate

Verificare 122 + 121 +120 = 4 + 2 + 1 = 7

13.01.2004

77 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

2.4.2.3.nmultirea cu mai multe cifre


Timpul afectat realizarii unei operatii de nmultire poate fi redus
prin micsorarea numarului de pasi. Una din metodele utilizate n acest sens
este efectuarea nmultirii cu mai multe cifre simultan.
Presupunem ca avem de efectuat produsul P = A B si consideram
grupe de cte k cifre binare consecutive ale nmultitorului B. Aceste cifre se
pot gasi n 2 k combinatii evidentiate n Tabelul 2.25. Functie de valorile
combinatiilor si de pozitia grupei, nmultirea cu k cifre presupune adunarea
denmultitului A sau a unui multiplu al sau asa cum rezulta din Tabelul
2.25.
Tabelul 2.25
Nr.
comb.

Combin
atie

Operatie executata

00000

00001

Se aduna A

00010
..
.

Se aduna 2A

11111

Se aduna (2 -1)A

..
.

2k

..
.
k

Valorile A, 2A, (2 k -1)A se aduna deplasate spre stnga ncepnd cu


CCMPS a grupei. Este evident ca prin aceasta procedura numarul de pasi
n care se efectueaza nmultirea se reduce de k ori, timpul reducndu-se
corespunzator.
14

Exemplu
Fie numerele A=00001011 si B=00001101. Sa se efectueze
produsul P = A B aplicnd nmultirea cu doua cifre simultan.
Pentru doua cifre Tabelul 2.25 devine.
Tabelul 2.26

14

Nr.

Comb.

Operatie executata
-

00

01

Se aduna A

10

Se aduna 2A

11

Se aduna 3A

CCMPS Cifra Cea Mai Putin Semnificativa

13.01.2004

78 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

2A=00010110 3A=00100001
A
B

Verificare

1
1

0
0

0
0

0
0

1
1
1
0
1

0
1
0
1
1

1
0
1

1
1
1

x
Prima grupa 01
A doua grupa 11

A =123 + 121 +120 = 8 + 2 + 1 = 11


B =123 + 122 +120 = 8 + 4 + 1 = 13
P =127 + 123 +122 +121 +120 =
=128 + 8 + 4 + 2 + 1 + = 143= 1113

2.4.3

mpartirea binara

Daca operatia de nmultire consta practic ntr-o adunare repetata,


cea de mpartire se poate realiza prin scaderea repetata a mpartitorului.
Sunt nsa si metode speciale din care n continuare vor fi prezentate cele cu
comparare, cu restaurare si fara restaurare.
2.4.3.1.mpartirea binara prin metoda compararii
Daca se considera doua numere A (dempartit) si B (mpartitor),
pentru ca mpartirea sa se poata efectua trebuie respectate urmatoarele doua
conditii:
a- mpartitorul B sa fie diferit de 0 (zero);
b- B>A (ctul va rezulta n acest fel subunitar)15 .
Efectuarea mpartirii A:B presupune determinarea a doua numere
Q (ctul) si Rn (al n-lea rest) astfel nct sa fie satisfacuta relatia
A = B + Rn
(2.52)

15

Daca aceasta conditie nu este ndeplinita se va transforma mpartitorul, iar dupa


efectuarea mpartirii se va ajusta corespunzator ctul.

13.01.2004

79 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

Conform acestei metode cifrele ctului se determina prin


comparari succesive ale mpartitorului B cu resturile partiale Ri , n urma
compararii putnd apare urmatoarele situatii:
a- B<Ri ? cifra corespunzatoare a ctului este 1 si se executa o
scadere a mpartitorului din restul partial (Ri -B);
b- B>Ri ? cifra corespunzatoare a ctului este 0 si nu se executa
scaderea mpartitorului din restul partial (Ri -B);
Considernd lungimile dempartitului A si mpartitorului B ca fiind
de fiind de 2n respectiv n biti, ctul Q va rezulta cu lungimea de n biti care
se vor determina n n pasi conform procedurii prezentate n cele ce
urmeaza.
Cifra de rang i se va calcula cu relatia de recurenta de mai jos, care
se va aplica de n ori, conform schemei logice din figura 2.9.
16
Ri = 2 Ri 1 qi B .
(2.53)
START
Da

AB
Nu

Ri ? o poz. la stnga (Ri ?2)


2Ri B
mpartire
invalida

Da

q i =1

q i =0

Ri =2 Ri-1 -B
Nu

S-a obtinut q n
Da

STOP

Fig. 2.9. Algoritmul de mpartire


prin comparare.

16

Primul rest partial R0 =A se compara cu B. Daca B<R0 se scade B din R0 iar


cifra ctului este 1; n caz contrar scaderea nu se executa iar cifra ctului este 0. n
ambele situatii rezultatul obtinut se deplaseaza cu o pozitie la stnga devenind
restul partial R1 .

13.01.2004

80 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

Procesul iterativ se opreste atunci cnd o noua deplasare spre


stnga a restului ar determina valoarea zero, sau dupa un numar fixat de
pasi
Exemplu
Sa se efectueze mpartirea A:B unde A=0.01100010 si B=0.1001.
0. 0
0
1
B
1
R1 = R0 ? 2 - B
0
R2 = R1 ? 2
0
R2 ? 2
1
B
1
R3 = R2 ? 2 - B
0
R4 = R3 ? 2
1
R0
R0 ? 2

Q= 0 . 1010

1 1 0 0 0 1 0 : 0 . 1 0 0 1= 0 . 1 0 1 0
1100010
100010 001
011010
11010
1010 001
1000
000

0 1 0 0< 1 00 1
2 R3 < B
Nu scadere q4=0
1 1 0 1> 1 00 1
2 R2 > B scadere q3=1
0 1 1 0< 1 00 1
2 R1 < B - nu scadere q2=0
1 1 0 0> 1 00 1
2 R0 > B scadere q1=1
0 1 1 0< 1 00 1
R0 < B - nu scadere q0=0

R4 = 0 . 0 0 0 0 1 0 0 0

Verificare
1
0. 01
0. 00
0. 01

0 . 1010x
0 . 1001
1010
001
0 1 0 0 1 0+
001000
011010

Q
B
A = B? Q+ R4
R4

mpartirea s-a oprit dupa 5 pasi deoarece prin deplasarea lui R4 la


stnga s-ar obtine 0000B.
2.4.3.2. mpartirea binara cu refacerea restului partial
n cadrul acestei metode compararea este nlocuita printr-o scadere
de test a mpartitorului B din dempartitul A, rezultatul interpretat fiind
diferenta D = A B.
Daca D < 0 (B>A) scazatorul este adunat la descazut (se reface
restul partial) si cifra ctului este 0.
Daca D > 0 (A>B) cifra ctului este 1. n ambele cazuri procesul
continua printr-o deplasare la stnga cu o pozitie a restului partial.
n figura 2.10 se prezinta schema logica asociata algoritmului de
mpartire cu refacerea restului partial.

13.01.2004

81 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

START
Da

AB
Nu

Ri ? o poz. la stnga (Ri ?2)


Se scade B din restul partial (Ri -B)
mpartire
invalida

Da

Ri B
Nu

q i =0

q i =1

Se reface restul partial Ri +B


Nu

S-a obtinut q n
Da

STOP
Fig. 2.10. Algoritmul de mpartire cu refacerea restului partial.

13.01.2004

82 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

Exemplu
Sa se efectueze mpartirea A:B unde A=0.01100010 si B=0.1001.
0 . 01 1 00 01 0 : 0 . 1 0 01= 0 . 1 01 0
01 1 00
- 10 0 1
11 0 10
+ 10 0 1
01 1 00
11 0 00
- 10 0 1
0 0 1 10
0 1 1 01
- 1 0 0 1
1 10 1 1
+ 1 00 1
0 11 0 1
1 10 1 0
- 1 00 1
01 0 0 0
10 0 0
- 10 0 1
0 11 1
Q=0 . 1 010

01 0
0 1 0 =A - B< 0
B
01 0
10

Se scade B
q0 = 0
Se reface restul partial prin adunarea lui B

; Se executa deplasarea cu o pozitie la stnga


; Se scade B
1 0 = 2 R1 - B > 0 ; q1 = 1
0
; Se executa deplasarea cu o pozitie la stnga
; Se scade B
0
= 2 R2 - B < 0 ; q2 = 0
; Se reface restul partial prin adunarea lui B
0
;
; Se executa deplasarea cu o pozitie la stnga
; Se scade B
= 2 R3 - B > 0 ; q3 = 1
; Se executa deplasarea cu o pozitie la stnga
; Se scade B
= 2 R4 - B < 0 ; q4 = 0
R4 = 0 . 0 0 0 0 1 0 0 0

Verificare

1
0 . 0 1
0 . 0 0
0 . 0 1

13.01.2004

;
;
;

0 . 1
0 . 1
1
00 1
01 0
00 1
01 1

01 0 x
00 1
01 0
01 0+
00 0
01 0

Q
B
A = B ? Q + R4

R4

83 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

2.4.3.3.mpartirea binara fara refacerea restului partial


n cadrul metodei precedente se observa ca oricare ar fi semnul
diferentei de test (Ri -B) operatia care se executa n iteratia urmatoare este
scaderea mpartitorului B din restul partial Ri deplasat cu o pozitie la
stnga. Rezulta ca n cazul Ri - B < 0 nti se aduna B apoi se scade B/2,
care printr-o singura operatie presupune adunarea cu B/2, respectiv
adunarea mpartitorului deplasat cu o pozitie spre dreapta. Situatia n care
Ri - B > 0 se trateaza ca n cazul precedent. Algoritmul obtinut corespunde
metodei fara refacerea restului partial, este ilustrat n schema logica din
figura 2.11.
START
Da

AB
Nu

A ? o poz. la stnga R0 =A?2


Se scade B din dempartitul deplasat R1 =A-B
mpartire
invalida

Ri+1 0

Nu

Da

q i =1

q i =0

Ri ? o poz. la stnga Ri ?2 Ri ? o poz. la stnga Ri ?2


Se scade B R i+1 = 2? Ri -B

Se aqduna B R i+1 = 2? Ri +B

Nu

S-a obtinut q n
Da

STOP
Fig. 2.11. Algoritmul de mpartire fara refacerea restului partial.

13.01.2004

84 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

Exemplu
Sa se efectueze mpartirea A:B unde A=0.01100010 si B=0.1001.
0 . 0 1 1 0 0 0 1 0 : 0 . 1 0 0 1= 0 . 1 0 1 0
01 10 00 10
- 10 01
1 1 0 1 0 0 1 0 =A - B< 0
1 0 1 0 0 1 0 = 2 R1
+10 01
0 0 1 1 0 1 0 = 2 R1 + B > 0
0 1 1 0 1 0 = 2 R2
- 10 0 1
11 0 11 0
= 2 R2 - B < 0
1 0 1 1 0 = 2 R3
+ 10 0 1
0 1 0 00
= 2 R3 + B > 0
1 0 0 0 = 2 R4
- 1 0 0 1
0 11 1
= 2 R4 - B < 0
Q=0 . 1 010

; Se scade B
; q0 = 0
; Se executa deplasarea cu o pozitie la stnga
; Se aduna B
; q1 = 1
; Se executa deplasarea cu o pozitie la stnga
; Se scade B
; q2 = 0
; Se executa deplasarea cu o pozitie la stnga
; Se aduna B
; q3 = 1
; Se executa deplasarea cu o pozitie la stnga
; Se scade B
; q4 = 0

R4 = 0 . 0 0 0 0 1 0 0 0

Verificare

1
0 . 0 1
0 . 0 0
0 . 0 1

0 . 1
0 . 1
1
00 1
01 0
00 1
01 1

01 0 x
00 1
01 0
01 0+
00 0
01 0

Q
B
A = B ? Q + R4

R4

2.5. Operatii aritmetice n virgula mobila


2.5.1. Adunarea si scaderea numerelor reprezentate n
virgula mobila
Aceste operatii se executa n mai multe etape si anume:
a) se compara caracteristicile celor doua numere si la necoincidenta
se aduc numerele la aceiasi caracteristica - cel mai mare (n acest scop

13.01.2004

85 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

numarul cu caracteristica mai mica va fi deplasat cu D = Cmax - Cmin pozitii


la dreapta);
b) se aduna (scad) mantisele n codul n care sunt reprezentate;
c) se normalizeaza mantisa obtinuta n urma adunarii.
Fie doua numere A si B reprezentaten VM (baza b)
A = ( M 1 ) b b C1 , B = ( M 2 ) b b C2

unde M 1 si M 2 sunt mantisele iar C1 si C2 (unde C1 >C2 ) sunt


caracteristicile celor doua numere.
Suma respectiv diferenta celor doua numere se calculeaza astfel:
A B = (( M 1 ) b ( M 2 ) b b D ) bC1

(2.53)

potrivit schemei logice din figura 2.12.


START
D=C1 -C2
Nu

Da

D=0
Da

Nu

C=C1

D>0
Nu

C=C1

C=C2

M2 = M2 ?16 -D

M1 = M1 ?16 D

M=M1 M2
Fig. 2.12. Algoritmul de
adunare/scadere a numerelor
reprezentate n virgula mobila.

Da

M<1
Nu

M= M?16
C=C+1
STOP

13.01.2004

86 / 104

-1

M 0.1
Nu

M= M?16 1
C=C-1

Da

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

Se observa ca daca M>1 sau M <0.1 se impune normalizarea


mantisei.
Exemplu
Fie A = 0.1F7163 si B = 0.B5416-1 (baza b=16). Sa se calculeze
F1 =A+B si F2 =A-B.
Pentru datele din exemplu C1 = 3, C2 = -1 si D = C1 - C2 = 4 si
A = 0.1F8 163 si B = 0.0000B54 163
Rezulta:
F1 = A + B = (0.1F7+0.B5416-4 ) 163 =
= (0.1F7 + 0.0000B54) 163 = 0.1F70B54163
si
F2 = A - B = (0.1F7 - 0.0000B52) 163 =
= (0.1F7 + 0.0000B54) 163 = 0.1F6F4AC163

2.5.2. nmultirea numerelor reprezentate n virgula mobila


nmultirea a doua numere reprezentate n virgula mobila, presupune
adunarea caracteristicilor si nmultirea mantiselor.
Pentru doua numere A si B reprezentate n VM (baza b)
A = ( M 1 ) b b C1 , B = ( M 2 ) b b C2

unde M 1 si M 2 sunt mantisele iar C1 si C2 sunt caracteristicile celor


doua numere, produsul celor doua numere se calculeaza astfel:
P = A B = (( M1 ) b ( M 2 ) b ) bC1+C 2

(2.54)
nmultirea mantiselor si adunarea caracteristicilor se poate realiza
potrivit procedurilor prezentate anterior. n ceea ce priveste normalizarea
rezultatului, aceasta se realizeaza n acelasi mod cu normalizarea
rezultatului adunarii/scaderii numerelor reprezentate n virgula mobila.
Mantisa rezultata va avea un numar dublu de cifre, din care se vor retine
numai jumatate daca se doreste respectarea formatului.

13.01.2004

87 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

Exemplu
Fie A = 0.1F7163 si B = 0.B5416-1 (baza b=16). Sa se
calculeze P=AB .
M=0.1F70.B54=0.16420C
C = C1+C2 = 3 1= 2
M1
M2

0 . 1F
0 . B5
7D
9D 3
1 5 9D
0 . 1 6 4 2 0

7 x
4
C

P = 0. 1 6 4 2 0 C

16

C
2

2.5.3. mpartirea numerelor reprezentate n virgula mobila


mpartirea a doua numere reprezentate n virgula mobila,
presupune scaderea caracteristicilor si mpartirea mantiselor.
Pentru doua numere A si B reprezentate n VM (baza b)
A = ( M 1 ) b b C1 , B = ( M 2 ) b b C2

unde M 1 si M 2 sunt mantisele iar C1 si C2 sunt caracteristicile celor


doua numere, produsul celor doua numere se calculeaza astfel:
Q = A : B = (( M 1 ) b : ( M 2 ) b ) b C1C2

(2.55)
mpartirea mantiselor si scaderea caracteristicilor se poate realiza
potrivit procedurilor prezentate anterior. n ceea ce priveste normalizarea
rezultatului, aceasta se realizeaza n acelasi mod cu normalizarea
rezultatului adunarii/scaderii numerelor reprezentate n virgula mobila.
Exemplu

13.01.2004

88 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

Fie A = 0.1F7163 si B = 0.B5416-1 (baza b=16). Sa se


calculeze Q = A:B = .
M=0.1F7:0.B54=0.2C67 rest 0.000D4
C = C1-C2 = 3 + 1= 4
1 F 7 0
1 6A 8
= 8C 8
8 7 F
= 4 9
4 3
= 5
4
=

B
0.
0
0
0
F
0
F
=

5 4
2 C 6 7

0
8
8 0
A C
D 4

Q= 0. 2 C 6 7 164

2.6. Operatii aritmetice cu numere zecimale codificate binar


Procesarea numerelor zecimale la nivelul calculatoarelor numerice
se realizeaza uzual utiliznd codificarea binara a acestora utiliznd coduri
ponderate sau neponderate.
2.6.1. Codificarea binara a numerelor zecimale
Reprezentarea cu semn presupune plasarea bitului corespunzator n
pozitia cea mai semnificativa 17 . Dupa bitul de semn se considera punctul
zecimal, astfel ca se vor considera reprezentate numai numere subunitare.
Se utilizeaza trei moduri de reprezentare si anume:
- marime si semn;
- complement fata de 9;
- complement fata de 10.
Ca si n cazul aritmeticii binare pentru numerele pozitive cele trei
reprezentari coincid. Pentru numerele negative, se determina cu ajutorul
relatiilor (2.13), (2.12) complementele fata de 9 respectiv fata de 10, n
cazul reprezentarilor n cod complementar.
17

Este valabila conventia 1pentru numere negative, 0 pentru numere pozitive.

13.01.2004

89 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

Exemplu
Fie A1 10 = 0.341, A2 10 = -0.341 si B1 10 = +0.582, B2 10 = -0.582
Sa se determine cele trei forme de reprezentare BCD, utiliznd codul 8421 .
A1 BCD -MS =0 0011 0100 0001 B1 BCD -MS =0 0101 1000 0010
A1 BCD -C9 =0 0011 0100 0001 B1 BCD -C9 =0 0101 1000 0010
A1 BCD -C10=0 0011 0100 0001 B1 BCD -C10=0 0101 1000 0010
A2 BCD -MS =1 0011 0100 0001
A2 C10=b n -(A2)b =100 -0.341=1-0.341=0.659
A2 BCD -C10=1 0110 0101 1001
A2 C9 = bn -(A2)b -b -m =1-0.341-10 -3 =1-0.341-0.001=0.658
A2 BCD -C9 =1 011 0101 1000
B2 BCD -MS =1 0101 1000 0010
B2 C10=b n -(B2)b =100 -0.582=1-0.582=0.418
B2 BCD -C10=0 0100 0001 1000
B2 C9 = bn -(B2)b -b -m =1-0.582-10 -3 =1-0.582-0.001=0.417
B2 BCD -C9 =0 0100 0001 0111
2.6.2. Adunarea si scaderea n cod binar-zecimal
Algoritmii prezentati la adunarea numerelor binare prezentati
anterior ramn valabili si pentru numerele zecimale, daca n loc de C2 si C1
se considera C10 si C9 si se aplica anumite corectii.
Necesitatea corectiilor rezulta din faptul ca din cele 16 combinatii
posibile ale codului cu patru biti codul BCD nu utilizeaza dect 10 si ca n
urma adunarii sau scaderii se pot genera combinatii invalide care trebuie
eliminate.
n cazul codului 8421 toate combinatiile cuprinse ntre 1010 si
1111 sunt invalide si pot fi eliminate daca oricarei tetrade mai mare dect
1001 (cifra 9) i se adauga tetrada 0110 (cifra 6). Aceiasi tetrada se adauga
si daca n urma adunarii rezulta tetradele 0000, 0001, 0010 si transport la
rangul superiore. Necesitatea acestor corectii rezulta din tabla adunarii
BCD prezentata mai jos.

13.01.2004

90 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice


+
0
01
2
3
4
5
6
7
8
9

0
0
1
2
3
4
5
6
7
8
9

1
1
2
3
4
5
6
7
8
9
A

2 3 4 5 6 7 8 9
2 3 4 5 6 7 8 9
3 4 5 6 7 8 9 A
4 5 6 7 8 9 A B
5 6 7 8 9 A B C
6 7 8 9 AB C D
7 8 9 ABC D E
8 9 ABCD E F
9 A B C D E F 10
A B C D E F 10 11
B C D E F 10 11 12

Aceasta corectie face ca operatia de


adunare sa se efectueze n baza 10 si nu 16.
n continuare vor fi prezentate exemple
de realizare a operatie de adunare n cod 8421
utiliznd cele trei reprezentari (marime-semn, C9,
C10) .

Exemplu
Fie A10 = 0.789, si B10 = 0.165.
Sa se determine n cele trei forme de reprezentare BCD, utiliznd
codul 8421
C1 BCD =ABCD + BBCD .
C2 BCD =-ABCD + BBCD
C3 BCD =ABCD - BBCD
C4 BCD =-ABCD - BBCD
a. Reprezentarea prin marime si semn
a1. C1 10 = A10 + B10 = 0.789 + 0.165 = 0.954
ABCD-MS = 0 0 1 1 1
BBCD-MS = 0 0 0 0 1
10 00

C1BCD-MS
C110

1
0
1
0
0
1?
=0 10 01 0

0 00 1
1 10 0
1 10+ 1
1 10 0
1 00 0
1?
1 01 0

0 01 +
1 01
1 10+
?
Corectii necesare, deoarece tetradele
1 10
corespunzatoare rangurilor 10-2 si 10-3
1 00
sunt mai mari dect 1001
1 00

=+ 0 . 9 5 4

Se aduna transportul generat

13.01.2004

91 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

a2. C2 10 = - A10 + B10 = - 0.789 + 0.165 = - 0.624


AC10=b n -(A)b =100 -0.789=1-0.789=0.211
ABCD-C10 = 1 0 0 1 0
BBCD-MS = 0 0 0 0 1
C2BCD-C10 = 1 0 0 1 1
- 3
C210
=- 6
C2BCD-MS = 1 0 1 1 0
C210

0
0
0
7
2
0

0 01
1 10
1 11

0 20

0
0
0
6
4
0

0 01 +
1 01
1 10
?

-A
B
Nu corectii, rezultatul este C10

1 00

= - ( 1 - 0. 3 7 6 )= - 0 . 624

a3. C3 10 = A10 - B10 = 0.789 - 0.165 = 0.624


BC10=b n -(B)b =100 -0.165=1-0.165=0.835
ABCD-MS = 0
BBCD-C10 = 1

0
1
1
0
0
1?
=0 0

C3BCD-MS
C310

1 11
0 00
1 11
1 10
1 01

1
0
1
0
0
1?
1 00 0

0 00 1
0 11 0
0 11+ 1
1 10 0
0 01 0
1?
0 10 0

0 01 +
1 01
1 10+
?
Corectii necesare, deoarece tetradele
1 10
corespunzatoare rangurilor 10-2 si 10-3
1 00
sunt mai mari dect 1001
1 00

Se aduna transportul generat

=+ 0 . 6 2 4

a4. C4 10 = -A10 - B10 = -0.789 - 0.165 = -0.954


AC10=b n -(A)b =100 -0.789=1-0.789=0.211
BC10=b n -(B)b =100 -0.165=1-0.165=0.835
ABCD-C10 = 1
BBCD-C10 = 1

C4BCD-C10
C410
C4BCD-MS
C410

0
1
1
0
0
1?
=1 0
==1 1

0 10 0
0 00 0
0 10 + 0
1 10
0 00 0
0 00
0
9
0 01

0 01
0 11
1 00
1 00

0 1 00
4
5
0 1 01

0 0 01 +
0 1 01
0 1 10
? Corectie necesara, deoarece tetrada
corespunzatoare rangului 10-1
0 1 10
este mai mare dect 1001
0 1 10
5
4
0 1 01

= - 0 . 9 54

13.01.2004

92 / 104

Se aduna transportul generat

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

b. Reprezentarea prin complement fata de 10


b1. C1 10 = A10 + B10 = 0.789 + 0.165 = 0.954
AC10=0.789
BC10=0.165
ABCD-C10 = 0 0 1 1 1
BBCD-C10 = 0 0 0 0 1
10 00

C1BCD-MS
C110

1
0
1
0
0
1?
=0 10 01 0

0 00 1
1 10 0
1 10+ 1
1 10 0
1 00 0
1?
1 01 0

0 01 +
1 01
1 10+
?
Corectii necesare, deoarece tetradele
1 10
corespunzatoare rangurilor 10-2 si 10-3
1 00
sunt mai mari dect 1001
1 00

Se aduna transportul generat

=+ 0 . 9 5 4

b2. C2 10 = - A10 + B10 = - 0.789 + 0.165 = - 0.624


AC10=b n -(A)b =100 -0.789=1-0.789=0.211
BC10=0.165
ABCD-C10 = 1 0 0 1 0
BBCD-C10 = 0 0 0 0 1
C2BCD-C10 = 1 0 0 1 1
- 3
C210
=- 6
C2BCD-MS = 1 0 1 1 0
C210

0
0
0
7
2
0

0 01
1 10
1 11

0 20

0
0
0
6
4
0

0 01 +
1 01
1 10
?

1 00

-A
B
Nu corectii, rezultatul este C10

= - ( 1 - 0. 3 7 6 )= - 0 . 624

13.01.2004

93 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

b3. C3 10 = A10 - B10 = 0.789 - 0.165 = 0.624


AC10=0.789
BC10=b n -(B)b =100 -0.165=1-0.165=0.835
ABCD-C10 = 0
BBCD-C10 = 1

0
1
1
0
0
1?
=0 0

C3BCD-MS
C310

1 11
0 00
1 11
1 10
1 01

1
0
1
0
0
1?
1 00 0

0 00 1
0 11 0
0 11+ 1
1 10 0
0 01 0
1?
0 10 0

0 01 +
1 01
1 10+
?
Corectii necesare, deoarece tetradele
1 10
corespunzatoare rangurilor 10-2 si 10-3
1 00
sunt mai mari dect 1001
1 00

Se aduna transportul generat

=+ 0 . 6 2 4

b4. C4 10 = -A10 - B10 = -0.789 - 0.165 = -0.954


AC10=b n -(A)b =100 -0.789=1-0.789=0.211
BC10=b n -(B)b =100 -0.165=1-0.165=0.835
ABCD-C10 = 1
BBCD-C10 = 1

C4BCD-C10
C410
C4BCD-MS
C410

0
1
1
0
0
1?
=1 0
==1 1

0 10 0
0 00 0
0 10 + 0
1 10
0 00 0
0 00
0
9
0 01

0 01
0 11
1 00
1 00

0 1 00
4
5
0 1 01

0 0 01 +
0 1 01
0 1 10
? Corectie necesara, deoarece tetrada
corespunzatoare rangului 10-1
0 1 10
este mai mare dect 1001
0 1 10
5
4
0 1 01

= - 0 . 9 54

13.01.2004

94 / 104

Se aduna transportul generat

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

c. Reprezentarea prin complement fata de 9


c1. C1 10 = A10 + B10 = 0.789 + 0.165 = 0.954
AC9 = 0.789
BC9 = 0.165
ABCD-C9 = 0 0 1 1 1
BBCD-C9 = 0 0 0 0 1
10 00

C1BCD-MS
C110

1
0
1
0
0
1?
=0 10 01 0

0 00 1
1 10 0
1 10+ 1
1 10 0
1 00 0
1?
1 01 0

0 01 +
1 01
1 10+
?
Corectii necesare, deoarece tetradele
1 10
corespunzatoare rangurilor 10-2 si 10-3
1 00
sunt mai mari dect 1001
1 00

Se aduna transportul generat

=+ 0 . 9 5 4

c2. C2 10 = - A10 + B10 = - 0.789 + 0.165 = - 0.624


AC9 = bn -(A)b - b -m =10 0 - 0.789 10 -3 =1-0.789-0.001=0.210
BC9 = 0.165
ABCD-C9 = 1
BBCD-C9 = 0
C2BCD-C9 = 1
C210
= C2BCD-MS = 1
C210

0
0
0
3
6
0
0

13.01.2004

01 0
00 1
01 1

11 0

0
0
0
7
2
0

0 01
1 10
1 11

0 20

0
0
0
5
4
0

0 00 +
1 01
1 01
?

1 00

-A
B
Nu corectii, rezultatul este C9

C210=bn-C2C9-b-m =1-0.375-0.001=0.624

624

95 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

c3. C3 10 = A10 - B10 = 0.789 - 0.165 = 0.624


AC9 = 0.789
BC9 = bn -(B)b - b -m =10 0 -0.165 10 -3 =1-0.165- 0.001=0.834
ABCD-C9 = 0
BBCD-C9 = 1

C3BCD-MS

0
1
1
0
0
1?
= 0 0
1?

C3BCD-MS = 0
C310

1 11
0 00
1 11
1 10
1 01

1
0
1
0
0
1?
1 10 0

0 1 10

00 0 1
01 1 0
01 1+ 1
11 0 0
00 1 0
1??
01 0 0

0 01 0

001 +
100
1 0 1+
?
Corectii necesare, deoarece tetradele
110
corespunzatoare rangurilor 10-1 ,10-2 si
10-3 mai mari dect 1001
011
sunt
0 1 1+

0 001
0 100

Se aduna transportul generat

Se aduna transportul de la cifra


desemn
semn

= + 0 . 6 24

c4. C4 10 = -A10 - B10 = -0.789 - 0.165 = -0.954


AC9 =b n -(A)b -b -m =10 0 -0.789 10 -3 =1- 0.789- 0.001=0.210
BC9 =b n -(B)b -b -m =10 0 -0.165 10 -3 =1- 0.165- 0.001=0.834
ABCD-C9 = 1
BBCD-C9 = 1

C4BCD-C9

C410
C4BCD-MS
C410

0
1
1
0
0
1??
= 1 0
1?
1
= = 1

0
0
0
1
0

10 0
00 0
10 + 0
10
00 0

001
011
100
100

0 00 0 +
0 10 0
0 10 0
? Corectie necesara, deoarece tetrada
corespunzatoare rangului 10-1
0 10 0
este mai mare dect 1001

0 00

0 100

0 10 0+

Se aduna transportul generat

0 0 00
0
1 0 01

0 100
4
0 101

0 00 1
0 10 1
5
0 10 0

? Se aduna transportul de la cifra


de semn
C210=bn-C2C9-b-m =1-0.045-0.001=0.954

= - 0 . 9 54

13.01.2004

96 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

2.6.3. nmultirea n cod binar-zecimal


Metodele de realizare a operatiei de nmultire difera functie de
modul de reprezentare a numerelor si anume : marime si semn,
complement fata de 9, complement fata de 10. n toate cazurile semnul
produsului se stabileste ca suma modulo 2 a celor doi biti de semn ai
factorilor.
n continuare vor fi prezentate unele metode de nmultire a
numerelor reprezentate n marime-semn precum si nmultirea cu puteri
ntregi ale bazei 10.
2.6.3.1. nmultirea cu 10k
O categorie speciala de nmultire a numerelor zecimale codificate
binar o reprezinta nmultirea cu puteri ale bazei 10 respectiv cu 10k , care
presupune deplasari dupa cum urmeaza:
k>0 deplasare stnga cu k tetrade; (se adauga zerouri n tetradele
nesemnificative din dreapta ramase libere);
k<0 deplasare dreapta cu k pozitii. (se adauga zerouri n tetradele
semnificative ramase libere).
n urma deplasarilor valoarea bitului de semn ramne neschimbata
si lungimea numarului constanta. n aceste conditii unele tetrade se pierd iar
altele se completeaza cu zero.
Exemple
Sa se converteasca n BCD marime-semn numarul A10 = 0.385si sa
se determine C1 = A?10 2 si C2 = A?10 -2
ABCD-MS = 0 0 0 11
1 00 0
C1BCD-MS = 0 0 1 01
0 00 0
C110 =
0 .5 0 0

0 101
0 000

C2BCD-MS = 0 0 0 00
0 00 0
C210 =
0 .0 0 3

0 011

13.01.2004

C 1 =A ? 1 0 0
Rezultatul real C1=38.5
Se pierd tetradele 1 si 2 iar tetradele 2 si 3
se completeaza cu zero
C2 = A ? 0 . 0 1
Rezultatul real C2=0.00385
Se pierd tetradele 2 si 3 iar tetradele 1 si 2
se completeaza cu zero

97 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

Din exemplul de mai sus se observa ca apar trunchieri, iar pentru ca


rezultatul final sa nu fie afectat se impune salvarea tetradelor care sunt
eliminate.
2.6.3.2. Metoda adunarii repetate
Aceasta metoda este asemanatoare cu cea utilizata la nmultirea
binara. Denmultitul va fi adunat cu el nsusi de un numar de ori egal cu
cifra corespunzatoare a nmultitorului (09) pentru a forma produsul
partial. Acesta se deplaseaza cu o pozitie (tetrada) spre stnga si ncepe
ciclul de adunari corespunzator urmatoarei cifre a nmultitorului. Procesul
se ncheie cu ciclul de adunari corespunzatoare celei mai semnificative cifre
a nmultitorului.
Exemplu
Fie A10 = 0.431(demultit) , si B10 = 0.232 (nmultitor).
Sa se determine P=A?B folosind metoda adunarii repetate n cadrul
reprezentarii BCD.
P=0.431?0232=0.099992

0 000

00 0 0

0 000

00 0 0

0 000

00 0 0

0 000

00 0 0

0 000

00 0 0

0 000

00 0
01 0
01 0
01 0
10 0

1
0
1
0
1

A
B
0 0 00

0 0 00
0 1 00
0 1 00
01
01
10
01
11
01
00
00
01
00
10

01
00
01
00
01
10
11
11
10
11
01

0100
0010
0000
0100
0100
1000
0011
1011
0110
0001
0011
0100
0011
0111

0011
0011
0000
0011
0011
0110
0001
0111

0001
0010
0000
0001
0001
0010

0111
0001
1000
0001
1001

0010

0111
0001
1000
0001
1001

1001

0010

1001

0010

1001

0010

= prod. partial initial


=A
=A
=P1-primul prod. part.
=A

0010
corectie
=A
0010
0010

=A
=P2-al doilea prod. part.
corectie

=A
=A

P= 0 . 0 9 9 9 9 2

13.01.2004

98 / 104

Rezultat final

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

2.6.3.3. Metoda celor noua multipli ai denmultitului


Timpul afectat unei nmultiri poate fi redus daca se dispune apriori
de cei noua multipli ai denmultitului. n acest fel multirea se va reduce la
un numar de adunari egal cu numarul de cifre al nmultitorului.
Exemplu
Fie A10 = 0.431(demultit) , si B10 = 0.232 (nmultitor).
Sa se determine P=A?B folosind metoda multiplilor denmultitului.
P=0.431?0232=0.099992
D e nm u l t i t
nm u l t i t o r
1 xA=
2 xA=

3 xA=

4 xA=

5 xA=
6 xA=

7 xA=
8 xA=
9 xA=

13.01.2004

A = 0100
B
0010
00 00 0100
0100
00 00 1000
0100
1100
0110
00 01 0010
0100
00 01 0110
00 01 0111
0100
00 01 1011
0110
00 10 0001
0100
00 10 0101
0100
00 10 1001
00 10 1010
0110
00 11 0000
0100
00 11 0100
0100
00 11 1000

0011 0 001
0011 0 010
0011
0011
0110
0011
1001

0
0
0
0
0

001
001
010
001
011

+
A
+
A

1001
0011
1100
0110
0010
0011
0101

0 011
0 001
0 100

+
A

0 100
0 001
0 101

+
A

0101
0011
1000
0011
1011
0110
0001

0
0
0
0
0

+
A
+
A

0001
0011
0100
0011
0111

0
0
1
0
1

corectie

corectie

corectie
101
001
110
001
111

corectie
0 111
corectie

99 / 104

111
001
000
001
001

+
A
+
A

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

0000

000 0

0000

000 1
100 0
100 1

0000
P =

100 1

A
B
00 00
00 00
00 10
01 10
10 00
1
10 01

0
0
0
1
1
0
0
0
1

100
010
000
000
001
010
011
110
001

00
00
00
01
00

11
11
00
10
11

000
001
000
001

10 01

1 x
0
0 Produs initial
0 2xA
3xA
2xA
001 0

10 01

0 0 1 0 Rezultat final

0 . 0 9999 2

2.6.4. mpartirea n cod binar-zecimal


Metodele sunt similare cu cele utilizate la mpartirea binara cu toate
ca mpartirea zecimala este mai complicata dect cea binara. Aceasta
complexitate este dictata n primul rnd de faptul ca pentru cifrele ctului
exista zece posibilitati (tetrade) n timp ce n cazul binar sunt numai doua
asemenea posibilitati (cifrele binare 0 si 1).
2.6.4.1. Metoda compararii
n cadrul acestei metode dempartitul este comparat succesiv cu
multipli ai mpartitorului. Procesul de comparatie se opreste la cel mai mare
multiplu care este mai mic dect dempartitul. Acesta se scade din
dempartit, iar ordinul multiplului devine cifra a ctului.
O varianta a acestei metode presupune scaderea repetata a
mpartitorului din dempartit, procesul oprindu-se atunci cnd mpartitorul
a devenit mai mare dect restul partial. n aceste conditii numarul de
scaderi devine cifra a ctului.

13.01.2004

100 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

Exemplu
Fie A10 = 0.176 (dempartit) , si B10 = 0.731 (mpartitor).
Sa se determine Q=A/B folosind metoda comparatiei.
a - comparatie cu multiplii mpartitorului18
D e mp a r t i t
mpa r t i t o r
0
1
2
3
4
5
6
7
8
9

xB
xB
xB
xB
xB
xB
xB
xB
xB
xB

A = 0 . 17 6
B = 0 . 73 1
=
=
=
=
=
=
=
=
=
=

0
0
1
2
2
3
4
5
5
6

.
.
.
.
.
.
.
.
.
.

000
731
462
193
924
655
386
117
848
579

0 .1 7 6 : 0 . 7 3 1 = 1 7 6 : 7 3 1
1 76
0
1 76
1 46
= 29
29
==

0
2
8
2
5

04
6

0 < 1 76

q0 = 0

1 4 6 2 < 1 7 6 0 q1 = 2
5 6 < 1 7 6 0 q2 = 4

0 . 1 7 6 = 0 .7 3 1 x 0. 2 4 + 0 . 0 0 0 5 6
Q= 0 . 24

18

R= 0 . 0 00 5 6

Pentru simplitate se va lucra cu cifre zecimale.

13.01.2004

101 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

b scaderi repetate
D e mp a r t i t
mpa r t i to r

A =
B =

0.17 6
0.73 1

0 .1 7 6 : 0 . 7 3 1 = 1 7 6 : 7 3 1
1 76 7 31
- 5 55
1 7
7
1 0
7
2

6
3
2
3
9
7
22
7
15
7
7
7
=

0
1
9
1
8
3
4
3
1
3
8
3
5

Prima scadere

- 555 < 731

q0=0

Prima scadere 1029>731

A doua scadere 298<731 q1=2

0 - Prima scadere 2249>731


1
9 - A doua scadere 1518>731
1
8 - A treia scadere 1518>731
1
7 - A patra scadere 298<731 q1=4
1
6 0 - Prima scadere 560 < 731 q1=0

0 . 1 7 6 = 0.7 3 1 x 0. 2 4 + 0 . 0 0 0 5 6
Q= 0 . 24

R = 0 . 0 0 05 6

2.6.4.2. Metoda refacerii restului partial


Metoda realizeaza mpartirea prin scaderi succesive ale
mpartitorului din dempartit. Procesul este continuat pna la obtinerea unui
rest negativ, retinndu-se numarul de scaderi. Aparitia primului rest negativ
determina adunarea mpartitorului la restul partial (refacerea restului
partial), iar cifra corespunzatoare a ctului este data de numarul de scaderi
efectuate.

13.01.2004

102 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

Exemplu
Fie A10 = 0.136 (dempartit) , si B10 = 0.643 (mpartitor).
Sa se determine Q=A/B folosind metoda refacerii restului partial.
D e mp a r t i t
mpa r t i to r

A =
B =

0.13 6
0.32 1

0 .1 3 6 : 0 . 3 2 1 = 1 7 6 : 7 3 1
1
3
- 1
3
1

3
2
9
2
3
3
1 0
3
7
3
3
3
=
3
- 2
3

6
1
5
1
6
2
3
2
1
2
9
2
7
2
4
2
7
3
4
3
1
3
- 2
3
1

0
1
9
1
8
1
7
1
6
1
5
1
6
2
3
2
1
2
0
2
1
3
8
3
5
3
2
3
- 1
3
2

+
0
1
9
1
8
1
3+
1
80 21
59 +
21
38 21
17 21
04 +
21
17

- 555 < 0 q0=0


Se reface restul partial
136x10
Prima scadere
1039>0
A doua scadere
718>0
A treia scadere
397>0
A patra scadere
76>0
A cincea scadere
- 245 < 0 q1=4
Se reface restul partial
-76x10
Prima scadere
-439>0
Prima scadere
-118>0
A treia scadere
- 203 < 0 q2=2
Se reface restul partial
118x10
Prima scadere
859>0
A doua scadere
538>0
A treia scadere
217>0
A patra scadere
- 104 < 0 q3=3
Se reface restul
Restul

Q = 0 . 4 2 3 R = 0 . 0 0 021 7

13.01.2004

103 / 104

Capitolul 2 - Bazele aritmetice ale calculatoarelor numerice

2.6.4.3. Metoda fara refacerea restului partial


n cadrul acestei metode ctul se obtine printr-o succesiune de
scaderi si adunari. Pentru determinarea unei cifre a ctului se procedeaza
astfel: se scade succesiv dempartitul din mpartitor pna se obtine un rest
partial negativ, retinndu-se numarul de scaderi pna la acest moment; la
iteratia urmatoare n loc sa se refaca restul partial se aduna 1/10 din
mpartitor; se continua cu un sir de adunari pna se obtine un rest partial
pozitiv; se contorizeaza numarul de adunari, acesta reprezentnd
complementul fata de 10 al cifrei ctului.
Exemplu
Fie A10 = 0.182 (dempartit) , si B10 = 0.643 (mpartitor).
Sa se determine Q=A/B fara refacerea restului partial.
D e mp a r t i t
mpa r t i to r

A =
B =

0.18 2
0.64 3

0 .1 8 2 : 0 . 6 4 3 = 1 8 2 : 6 4 3
1 8
6
1 1
6
5
6
- 1
- 1 0
6
- 4
6
1
1 9
6
1 3
6
6
6

2
4
7
4
3
4
0
9
4
4
4
9
6
4
1
4
7
4
3
64
- 61

0
3
7
3
4
3
9
0
3
7
3
6
0
3
7
3
4
3
1
3
2

+
+
+
-

136x10
Prima scadere
1177>0
A doua scadere
534>0
A treia scadere
-109<0
q1=2
-109x10
Prima adunare
-447<0
A doua adunare
196 > 0 q2=C10(2)=8
196x10
Prima scadere
1317>0
A doua scadere
674>0
A treia scadere
31>0 - restul
A patra scadere
-612<0
q3=3

Q = 0 . 2 8 3 R = 0 . 0 0 003 1

13.01.2004

104 / 104