1. Reprezentarea numerelor şi operaţii aritmetice în sisteme de calcul.

Σχετικά έγγραφα
III. Reprezentarea informaţiei în sistemele de calcul

(a) se numeşte derivata parţială a funcţiei f în raport cu variabila x i în punctul a.

R R, f ( x) = x 7x+ 6. Determinați distanța dintre punctele de. B=, unde x și y sunt numere reale.

Curs 10 Funcţii reale de mai multe variabile reale. Limite şi continuitate.

III.2.2. Reprezentarea în virgulă mobilă

Curs 1 Şiruri de numere reale

Subiecte Clasa a VIII-a

Metode de interpolare bazate pe diferenţe divizate

Lucrarea de laborator nr. 2

Metode iterative pentru probleme neliniare - contractii

Sisteme de numeraţie

2. Circuite logice 2.5. Sumatoare şi multiplicatoare. Copyright Paul GASNER

Analiza în curent continuu a schemelor electronice Eugenie Posdărăscu - DCE SEM 1 electronica.geniu.ro

III. Serii absolut convergente. Serii semiconvergente. ii) semiconvergentă dacă este convergentă iar seria modulelor divergentă.

MARCAREA REZISTOARELOR

Esalonul Redus pe Linii (ERL). Subspatii.

5. FUNCŢII IMPLICITE. EXTREME CONDIŢIONATE.

Subiecte Clasa a VII-a

Integrala nedefinită (primitive)

Curs 4 Serii de numere reale

Aplicaţii ale principiului I al termodinamicii la gazul ideal

Seminar 5 Analiza stabilității sistemelor liniare

SERII NUMERICE. Definiţia 3.1. Fie (a n ) n n0 (n 0 IN) un şir de numere reale şi (s n ) n n0

Planul determinat de normală şi un punct Ecuaţia generală Plane paralele Unghi diedru Planul determinat de 3 puncte necoliniare

Functii definitie, proprietati, grafic, functii elementare A. Definitii, proprietatile functiilor X) functia f 1

Curs 14 Funcţii implicite. Facultatea de Hidrotehnică Universitatea Tehnică "Gh. Asachi"

10 REPREZENTAREA DIGITALĂ

a n (ζ z 0 ) n. n=1 se numeste partea principala iar seria a n (z z 0 ) n se numeste partea

SEMINAR 14. Funcţii de mai multe variabile (continuare) ( = 1 z(x,y) x = 0. x = f. x + f. y = f. = x. = 1 y. y = x ( y = = 0

Functii definitie, proprietati, grafic, functii elementare A. Definitii, proprietatile functiilor

Subiecte Clasa a V-a

DISTANŢA DINTRE DOUĂ DREPTE NECOPLANARE

5.5. REZOLVAREA CIRCUITELOR CU TRANZISTOARE BIPOLARE

Problema a II - a (10 puncte) Diferite circuite electrice

Criptosisteme cu cheie publică III

COLEGIUL NATIONAL CONSTANTIN CARABELLA TARGOVISTE. CONCURSUL JUDETEAN DE MATEMATICA CEZAR IVANESCU Editia a VI-a 26 februarie 2005.

Sisteme diferenţiale liniare de ordinul 1

Seminariile Capitolul X. Integrale Curbilinii: Serii Laurent şi Teorema Reziduurilor

V.7. Condiţii necesare de optimalitate cazul funcţiilor diferenţiabile

Asupra unei inegalităţi date la barajul OBMJ 2006

Curs 2 Şiruri de numere reale

5.4. MULTIPLEXOARE A 0 A 1 A 2

Ecuatii exponentiale. Ecuatia ce contine variabila necunoscuta la exponentul puterii se numeste ecuatie exponentiala. a x = b, (1)

Conice. Lect. dr. Constantin-Cosmin Todea. U.T. Cluj-Napoca

2. Sisteme de forţe concurente...1 Cuprins...1 Introducere Aspecte teoretice Aplicaţii rezolvate...3

Să se arate că n este număr par. Dan Nedeianu

Definiţia generală Cazul 1. Elipsa şi hiperbola Cercul Cazul 2. Parabola Reprezentari parametrice ale conicelor Tangente la conice

Laborator 1: INTRODUCERE ÎN ALGORITMI. Întocmit de: Claudia Pârloagă. Îndrumător: Asist. Drd. Gabriel Danciu

1. BAZE ŞI SISTEME DE NUMERAŢIE REPREZENTAREA DATELOR ÎN CALCULATOR ELEMENTE DE TEORIA CODURILOR... 36

Lectia VI Structura de spatiu an E 3. Dreapta si planul ca subspatii ane

Limbaje de Programare Curs 3 Iteraţia. Reprezentare internă. Operatori pe biţi


Olimpiada Naţională de Matematică Etapa locală Clasa a IX-a M 1

Progresii aritmetice si geometrice. Progresia aritmetica.

Laborator 11. Mulţimi Julia. Temă

Matrice. Determinanti. Sisteme liniare

T R A I A N ( ) Trigonometrie. \ kπ; k. este periodică (perioada principală T * =π ), impară, nemărginită.

CURS XI XII SINTEZĂ. 1 Algebra vectorială a vectorilor liberi

Toate subiectele sunt obligatorii. Timpul de lucru efectiv este de 3 ore. Se acordă din oficiu 10 puncte. SUBIECTUL I.

1.3. Erori în calculele numerice

ANEXA 4. OPERAŢII ARITMETICE IMPLEMENTĂRI

a. 11 % b. 12 % c. 13 % d. 14 %

Lucrare. Varianta aprilie I 1 Definiţi noţiunile de număr prim şi număr ireductibil. Soluţie. Vezi Curs 6 Definiţiile 1 şi 2. sau p b.

Capitolul 4. Integrale improprii Integrale cu limite de integrare infinite

1.7. AMPLIFICATOARE DE PUTERE ÎN CLASA A ŞI AB


Conf.dr.ing. Gabriela Ciuprina

Capitolul 4 PROPRIETĂŢI TOPOLOGICE ŞI DE NUMĂRARE ALE LUI R. 4.1 Proprietăţi topologice ale lui R Puncte de acumulare

z a + c 0 + c 1 (z a)

Metode Runge-Kutta. 18 ianuarie Probleme scalare, pas constant. Dorim să aproximăm soluţia problemei Cauchy

3. Momentul forţei în raport cu un punct...1 Cuprins...1 Introducere Aspecte teoretice Aplicaţii rezolvate...4

Ecuaţia generală Probleme de tangenţă Sfera prin 4 puncte necoplanare. Elipsoidul Hiperboloizi Paraboloizi Conul Cilindrul. 1 Sfera.

Erori si incertitudini de măsurare. Modele matematice Instrument: proiectare, fabricaţie, Interacţiune măsurand instrument:

1.3 Baza a unui spaţiu vectorial. Dimensiune

Componente şi Circuite Electronice Pasive. Laborator 3. Divizorul de tensiune. Divizorul de curent

Teme de implementare in Matlab pentru Laboratorul de Metode Numerice

Codificatorul SN74148 este un codificator zecimal-bcd de trei biţi (fig ). Figura Codificatorul integrat SN74148

Profesor Blaga Mirela-Gabriela DREAPTA

SEMINARUL 3. Cap. II Serii de numere reale. asociat seriei. (3n 5)(3n 2) + 1. (3n 2)(3n+1) (3n 2) (3n + 1) = a

MULTIMEA NUMERELOR REALE

riptografie şi Securitate

2. Circuite logice 2.4. Decodoare. Multiplexoare. Copyright Paul GASNER

Ecuatii trigonometrice

CONCURSUL DE MATEMATICĂ APLICATĂ ADOLF HAIMOVICI, 2017 ETAPA LOCALĂ, HUNEDOARA Clasa a IX-a profil științe ale naturii, tehnologic, servicii

Spatii liniare. Exemple Subspaţiu liniar Acoperire (înfăşurătoare) liniară. Mulţime infinită liniar independentă

2.1 Sfera. (EGS) ecuaţie care poartă denumirea de ecuaţia generală asferei. (EGS) reprezintă osferă cu centrul în punctul. 2 + p 2

Subiecte Clasa a VIII-a

Tranzistoare bipolare şi cu efect de câmp

Examen AG. Student:... Grupa:... ianuarie 2011

Laborator 4 suport teoretic Tipuri de date utilizate în limbajul de programare C.

Valori limită privind SO2, NOx şi emisiile de praf rezultate din operarea LPC în funcţie de diferite tipuri de combustibili

ELECTRONICĂ DIGITALĂ

RĂSPUNS Modulul de rezistenţă este o caracteristică geometrică a secţiunii transversale, scrisă faţă de una dintre axele de inerţie principale:,

Tabelul tranziţiilor este prezentat mai jos. La construirea sumatorului folosim bistabile de tip JK: (3.1)

Examen AG. Student:... Grupa: ianuarie 2016

Arhitectura Calculatoarelor. Fizică - Informatică an II. 2. Circuite logice. Copyright Paul GASNER 1

a) (3p) Sa se calculeze XY A. b) (4p) Sa se calculeze determinantul si rangul matricei A. c) (3p) Sa se calculeze A.

Functii Breviar teoretic 8 ianuarie ianuarie 2011

6 n=1. cos 2n. 6 n=1. n=1. este CONV (fiind seria armonică pentru α = 6 > 1), rezultă

Curs 2 DIODE. CIRCUITE DR

Transcript:

1. Reprezentarea numerelor şi operaţii aritmetice în sisteme de calcul. 1.1. Sisteme de reprezentare ale numerelor: a) Sistemul zecimal: baza sistemului este 10 simbolii (digiţi) sistemului sunt cifrele 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 semnul numărului: plus (+) sau minus (-); b) Sistemul binar: baza sistemului este 2, simbolii (biţi) sistemului sunt cifrele 0 sau 1, semnul numărului se reprezintă printr-o valoare binară. c) Sistemul octal: baza sistemului este 8, simbolii + sistemului sunt cifrele {0, 1, 2, 3, 4, 5, 6, 7}, semnul numărului se reprezintă printr-o valoare binară. d) Sistemul hexazecimal (hexadecimal în engleza, prescurtat hex): baza sistemului este 16 simbolii (biţi) sistemului sunt cifrele {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F}, unde: - A corespunde numărului zecimal 10, - B corespunde numărului zecimal 11, - C corespunde număului zecimal 12, - D corespunde numărului zecimal 13, - E corespunde număului zecimal 14, - F corespunde număului zecimal 15. semnul numărului se reprezintă printr-o valoare binară. Exemple: (i) numărul N = -12345 este un număr întreg şi negativ (semnul minus) (ii) numărul zecimal X 1 = -7316.918 are următoarea interpretare: a. este un număr real, b. este un număr negativ, c. 7316 reprezintă partea întreagă în care cifra 7 se numeşte cifra miilor (puterea 10 3 ), respectiv cifra 6 reprezintă unităţile. d..918 reprezintă partea fracţionară în care 9 se numesc zecimi, 1 reprezintă sutimile iar 8 reprezintă miimile. (iii) numărul X 2 =A13F.27C reprezintă un număr scris în hexazecimal unde: - A reprezintă puterea a 4-a a bazei 16, - C reprezintă puterea -3 a bazei 16. Observaţie : Putem asimila limbajul obişnuit al sistemului zecimal, respectiv mii,...unitaţi etc., respectiv zecimi,.. miimi etc. şi pentru alte sisteme de reprezentare în alte baze. 1.2. Clasificarea numerelor Numerele se pot clasifica în două categorii: (i) Numere intregi cu semn: Numerele întregi sunt caracterizate prin {sgn, α n-1, α n-2... α o }, unde:

- semnul (sgn) este entitatea {+,-}; - cele n valori α, α i i=0,n-1 reprezintă cifrele ordonate ale numărului α i. Ele se numesc cifre, digiţi sau biţi în raport de context. Exemplu: Pentru sistemul zecimal α i {0,1,2,3,4,5,6,7,8,9} Numărul -7389 = (-1) * (7 * 10 3 +3 * 10 2 +8 * 10 1 +9 * 10 0 ) Observatie. Numărul 0 are α i =0 oricare ar fi i. Referitor la semnul lui zero, acesta poate fi pozitiv sau negativ, deoarece în operaţiile de adunare şi respectiv înmulţire semnul constantei zero nu afectează rezultatul. Domeniul de reprezentare cu n cifre al numerelor întregi în sistemul zecimal: V max = 10 n -1 (Ex. pentru n=4, V max = 9999) V min = -(10 n -1) (Ex. pentru n=4, V min = -9999) interval de 2 * 10 n elemente, cu observaţia că zero are dublă reprezentare. Pentru sistemele din celelalte baze mentionate B = 2 - binar, B = 8 - octal sau B = 16 - hexazecimal, regulile menţionate şi exemplificate pentru sistemul zecimal se extrapolează. Pentru o bază B arbitrară şi n poziţii un număr n n-1-1), n-1-1)]. Sistemele de tip binar: baza B=2 Cifrele respective (digit=bit)={0,1} Pentru o reprezentare a numărului pe n biţi, un număr arbitrar va fi reprezentat în domeniul: M n-1-1), n-1-1)] Este util să se cunoască puterile succesive ale bazei 2 prezentate în tabelul de mai jos: Puterea 0 1 2 3 4 5 6 7 Valoarea 1 2 4 8 16 32 64 128 Puterea 8 9 10 11 12 13 14 15 16 Valoarea 256 512 1024 2048 4096 8192 16384 32768 65536 Notă: se va folosi denumirea pentru un şir de 8 biţi OCTET sau BYTE Semnul ocupă poziţia bit n-1 (cea mai semnificativă sau Most Significant Bit - MSB) din cele n alocate: pentru n biţi utilizaţi, ceilalţi n-1 biţi sunt utilizaţi pentru valoare. Valorile uzuale şi denumirile sunt: Număr de biţi n Denumire n=16 Short integer n=32 Long integer n=64 Double integer 1.3.Conversia reprezentării numerelor din baza 10 în baza 2. Intr-un sistem de reprezentare un număr întreg N poate fi scris sub forma: n-1 N= ± α i * B i, unde α i sunt cifrele numărului şi B = 10 este baza sistemului zecimal. i=0 Numărul conţine n cifre semnificative, iar semnul este o entitate separată.

Pe baza repetării algoritmului de împărţire cu rest: q j = q j+1 * B + r j, unde B este baza sistemului receptor al conversiei, q j+1 sunt câturile împăţirilor succesive, iar r j sunt cifrele numărului convertit la noua baza. Notă: q 0 = N (numărul dat). Conversia de la baza B=10 (numere zecimale) la baza B=2 (numere binare) se face prin împărţiri repetate până se obţine câtul q m = 0. N= (α n-1* 2 n-1 + α n-2* 2 n-2 +...+α 1* 2 1 +α 0* 2 0 ) : 2 = (α n-1* 2 n-2 + α n-2* 2 n-3 +...+ α 1* 2 0 ) + + (α 0* 2-1 ). Deci restul r 0 este Least Significant Bit al reprezentării binare. Nota: Pentru reducerea numărului de paşi de aplicare a algoritmului se pot alege şi bazele B =8 (octal), sau B =16 (hex). Exemplul 1: fie numărul zecimal N = 143; în tabelă este reprezentată succesiunea operaţiilor de conversie în sistem binar: LSB catre MSB 2 0 2 1 2 2 2 3 2 4 2 5 2 6 2 7 143/2 1 71/2 1 35/2 1 17/2 1 8/2 0 4/2 0 2/2 0 1/2 1 0/2=0 MSB catre LSB 2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 0 OCTAL HEX (143) 10 1 0 0 0 1 1 1 1 217 8F 1.4. Modalităţi de reprezentare a numerelor întregi în sisteme cu baza binară. Se utilizează prescurtările: 2 10 =1024=1K (Kilo), 2 20 =1024 2 =1M (Mega), 2 30 =1024 3 =1G (Giga), 2 40 =1024 4 =1T (Terra). Pentru cele trei moduri de reprezentare: Semnul sau sgn - ocupă poziţia MSB (Most Significant Bit) - bitul de semn sgn: 0 pt N 0, 1 pt N<0 1) Reprezentarea prin semn şi valoare absolută {sgn, ABS} Mulţimea valorilor N n-1-1); n-1-1)] ABS max =(111 1) pentru cele (n-1) poziţii; ABS min = (000...0) pentru cele (n-1) poziţii. Se observă ca zero are dublă reprezentare: 0 Astfel, pentru Long integer valorile: +0 = (00000000) hex, iar -0 = (80000000) hex

Domeniul de reprezentare aparţine: n=8 biţi, N [-127, +127] n=16 biţi N [-32767, +32767] n=32 biţi N 31-1), + 31-1)] 2) Reprezentarea în complement faţă de 1: C 1 Reprezentarea în complement faţă de 1, C 1 (N), a unui număr N se obţine prin inversarea fiecărui bit al reprezentării numărului N. Exemplu: dacă N = 0100 1001 = 49 hex, C 1 (N) = 1011 0110 = B6 hex. Se observă că N + C 1 (N) = 1111 1111 = FF hex Se observă ca zero are dublă reprezentare: 0 Astfel, pentru Long integer valoarile: +0 = (00000000) hex, iar -0 = (FFFFFFFF) hex Domeniul de reprezentare aparţine: n=8 biţi, N [-127, +127] n=16 biţi N [-32767, +32767] n=32 biţi N 31-1), + 31-1)] 3) Reprezentarea în complement faţă de 2: C 2 Complementul faţă de 2 se obţine conform regulii: C 2 (N)=C 1 (N)+1 Se observă că valoarea zero are o singură reprezentare Astfel, pentru Long integer valorile: +0 = (00000000) hex, iar -0 = (FFFFFFFF) hex +1 = (00000000) hex pentru cei 32 biţi alocaţi pentru reprezentare. Domeniul de reprezentare aparţine: n=8 biţi, N [-128, +127] n=16 biţi N [-32768, +32767] n=32 biţi N 31, + 31-1)] O regulă simplă (R1) pentru obţinerea lui C 2 (N) este următoarea: Incepând de la bitul b0 (LSB) se pastrează valorile binare nemodificate până la primul bit egal cu 1, inclusiv acesta, iar restul se complementează Exemplul 2: numărul zecimal N = 19720 şi numărul N sunt reprezentate prin {sgn, ABS}, C 1 şi C 2 în tabelă: sgn HEX OCTAL 1 19720 0 1 0 0 1 1 0 1 0 0 0 0 1 0 0 0 4D08 046410 2-19720 1 1 0 0 1 1 0 1 0 0 0 0 1 0 0 0 CD08 146410 3 C 1 (19720) 1 0 1 1 0 0 1 0 1 1 1 1 0 1 1 1 B2F7 131367 4 +1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0001 000001 5 C 2 (19720) 1 0 1 1 0 0 1 0 1 1 1 1 1 0 0 0 B2F8 131370 Tabela 1 1.5. Operaţii aritmetice cu numerele întregi. 1) Insumarea (Adunare / Scădere). Numerele întregi sunt memorate în sistemele de calcul conform modelului Complement fata de 2 - C 2, deoarece acesta tratează în mod unitar operaţiile aritmetice de adunare sau scădere. Operaţia de adunare (scădere) se realizează modulo 2 n-1 unde n este numărul de biţi utilizaţi. Fie două numere întregi cu semn A şi B reprezentate pe 16 biţi. Sunt patru cazuri posibile de calcul a sumei celor două numere:

a) S = A+B - adunarea a 2 numere, ambii operanzi au acelaşi semn faţă de reprezentarea lor în memorie. b) S = (-A)+(-B) - adunarea a 2 numere, ambii operanzi au semn schimbat faţa de reprezentarea lor în memorie. c) S = (-A)+B - adunarea a 2 numere, primul operand are semn schimbat faţa de reprezentarea sa în memorie. d) S = A+(-B) - adunarea a 2 numere, al doilea operand are semn schimbat faţa de reprezentarea sa în memorie. Pentru realizarea corectă a sumei S este necesară conversia în Complement faţă de 2 C 2 a operandului al carui semn se schimbă, înainte de efectuarea însumării. Nota: Dacă cei doi operanzi au acelaşi semn şi dacă în urma efectuării însumării bitul de semn (MSB) îşi schimbă valoarea, aceasta situaţie se numeşte depaşire binară (overflow). Concluzie: Insumarea a 2 numere de acelaşi semn şi bitul de semn se schimbă: această situaţie se numeşte depaşire binară (overflow). Insumarea a 2 numere de semne contrare nu produce depaşire binară (overflow). In Tabela 2 se exemplifică cele patru cazuri de însumare a numerelor A=19720, B=15347 conform reprezentarii lor în memorie: Bitul nr. 15-sgn 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 HEX A=19720 0 1 0 0 1 1 0 1 0 0 0 0 1 0 0 0 4D08+ B=15347 0 0 1 1 1 0 1 1 1 1 1 1 0 0 1 1 3BF3= a) S=A+B 1 0 0 0 1 0 0 0 1 1 1 1 1 0 1 1 =88FB C 2 (19720) 1 0 1 1 0 0 1 0 1 1 1 1 1 0 0 0 B2F8+ C 2 (15347) 1 1 0 0 0 1 0 0 0 0 0 0 1 1 0 1 C40D= b) S = (-A)+(-B) 0 1 1 1 0 1 1 1 1 1 1 1 0 1 0 1 =77F5 C 2 (19720) 1 0 1 1 0 0 1 0 1 1 1 1 1 0 0 0 B2F8+ B=15347 0 0 1 1 1 0 1 1 1 1 1 1 0 0 1 1 3BF3= c) S = (-A)+B 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 =EEEB A=19720 0 1 0 0 1 1 0 1 0 0 0 0 1 0 0 0 4D08+ C 2 (15347) 1 1 0 0 0 1 0 0 0 0 0 0 1 1 0 1 C40D= d) S = A+(-B) 0 0 0 1 0 0 0 1 0 0 0 1 0 1 0 1 =1115 Tabela 2 Nota: Rezultatele operaţiilor de la a) şi b) sunt cazuri de depăşire binară (overflow). 2) Inmulţirea numerelor întregi cu semn. Notăm cu P = X * Y produsul a doi operanzi X, Y. Operaţia de înmulţire se bazează pe regulile: (i) Dacă cei doi operanzi sunt reprezentaţi în memorie pe n biţi, produsul va fi reprezentat pe 2n biţi. (ii) Semnul lui P alocat pe pozitia cea mai semnificativă bit 2n-1 este: - bit 2n-1 = 0 dacă semnele celor doi operanzi sunt egale, - bit 2n-1 = 1 dacă semnele celor doi operanzi sunt opuse. Operaţia logică a semnului rezultat este sgn(p) = sgn(x) XOR sgn(y).

(iii) Produsul se calculează prin înmultirea Z =ABS(X) * ABS(Y) şi se păstrează dacă semnele celor doi operanzi sunt egale, sau se trece în C 2 (Z) dacă semnele celor doi operanzi sunt opuse. (iv) Calculul produsului este un proces secvenţial de obţinere de Produse parţiale Pp j care se însumeaza secvenţial. In Tabela 3 este ilustrat un exemplu simplu de înmulţire a două numere reprezentate pe 16 biţi (short): Bitul nr. 15-sgn 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 HEX X=+11 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 000B Y=+13 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 000D 1 Pp 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 000B 2 Pp 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0000 3 Pp 3 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 002C 4 Pp 4 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0058 5 P=X * Y 0 0 0 0 0 0 0 0 1 0 0 0 1 1 1 1 008F Tabela 3 Operaţia de înmulţire este obţinută prin însumarea celor 4 Produse partiale Pp j, şi este dată de relaţia: n-2 P= ± y i * (X * 2 i ), unde y i sunt biţii de ordin i ai numărului Y. i=0 In exemplul din Tabela 3, relaţia de mai sus se particularizează la: P = 1 * (B * 2 0 ) + 0 * (B * 2 1 ) + 1 * (B * 2 2 ) + 1 * (B * 2 3 )

r=sgn(i.f) 1.6. Reprezentarea numerelor reale în virgulă fixă (Fixed point) şi virgulă mobilă (Floating point) Un număr real este reprezentat prin: semn (sgn), parte întreagă (I), punct zecimal (.), parte fracţionară (F). Exemplu: x= - 31998.7134 a) Reprezentarea în virgula fixă (Fixed point) Pentru reprezentarea internă sunt necesare informaţiile privind semnul, numărul de cifre ale părţii întregi n i, şi numărul de cifre ale părţii fracţionare n f. Operarea este foarte strictă şi rigidă. b) Reprezentarea în virgula mobilă (Floating point) In modul de reprezentare binar în sisteme, numărul x trebuie să aibă următoarele elemente cu denumirile: - Semnul (+/-), denumit sgn (S). - Exponentul (puterea bazei), denumit exp (E). - Cifrele semnificative ale numărului, denumite mantissa (M) sau significand. In Tabela 4 sunt prezentate reprezentările binare ale numerelor reale, utilizând cuvinte de 32, 64 şi 128 de biţi, conform standardului IEEE 754-2008. Tip Precision Sgn S MSB Single 1 bit31 Double 1 bit63 Quad 1 bit127 Exponent E 8 bit30-bit23 11 bit62-bit52 15 bit126-bit112 Exponent bias Mantissa Normalizată M N 127 23 bit22-bit0 1023 52 bit51-bit0 16383 112 bit111-bit0 Lungimea cuvântului 32 bit31-bit0 64 bit63-bit0 128 bit127-bit0 Precizia reprezentării Număr de cifre zecimale 24 ~7.2 53 ~15.9 113 ~34.0 Tabela 4 Reprezentarea normalizată: Se păstrează o cifră semnificativă pentru partea întreagă, iar restul devine parte fracţionară şi exponentul se modifică în mod corespunzator, indiferent de sistemul de reprezentare. Observaţii: 0, dacă x 0 1. Semnul (S sau sgn) este Se admite dubla reprezentare a lui zero. 1, dacă x 0 2. Mantissa normalizată (M N ) reprezintă valoarea absolută a imaginii binare a numărului respectiv M N = Abs(x) normalizat. Primul bit al M N este egal cu 1. Conform standardului IEEE 754-2008, în reprezentarea internă în memorie a M N bitul cel

mai semnificativ (ponderea puterii 2 0 ) este omis, deoarece valoarea sa implicită este 1. Acest mod de reprezentare se numeste Hidden bit representation şi va micşora eroarea maximă de reprezentare a unui număr real care devine: 2-24, 2-53, respectiv 2-113. In funcţie de numărul de biţi ai mantissei (nm), numărul de cifre zecimale ale numărului real se calculează pe baza formulei: 10 x = 2 nm Aplicând funcţia log 10 relaţiei de mai sus şi deoarece log 10 2 ~ 0.3 se obţin valorile numărului de cifre zecimale indicate în Tabela 4. Conversia binară a numărului zecimal se efectuează separat pentru partea intreagă I, respectiv pentru partea fracţionară F. - partea intreagă I se obţine prin algoritmul specificat la 1.3. Conversia reprezentării numerelor din baza 10 în baza 2. - partea fracţionară F se obţine prin înmulţiri repetate cu 2 ale valorii zecimale F. Dacă partea întreagă a produsului este un număr par atunci bitul de pondere 2 -i este 0, iar dacă partea întreaga a produsului este un număr impar atunci bitul de pondere 2 -i este 1; se mentionează că algoritmul de conversie binară a lui F este divergent în marea majoritate a cazurilor. Concluzie: M N se obţine din concatenarea şirului binar al părţii intregi cu şirul binar al părţii fracţionare, iar eroarea maximă de reprezentare a unui număr real este 2-24, 2-53, respectiv 2-113 pentru cele trei tipuri din Tabela 4. Nota: Unele sisteme de calcul păstrează şi următorul bit după cei n biţi rămaşi ai fracţiei, iar acesta poartă denumirea de bit de gardă. (Dacă ar fi 1 atunci se adaugă la ultimul bit 1 şi se aplică regula de deplasare a depăşirii). 3. Exponentul EXP, este un număr întreg şi admite oricare din convenţiile de reprezentare ale numerelor întregi. Se notează cu nexp lungimea câmpului Exponent EXP. Valoarea exponentului indică ordinul de mărime al numărului real. (i) Reprezentarea exponentului prin semn şi valoare absolută {sgn, ABS} Domeniul de valori este: EXP nexp-1 ; nexp-1 ], cu reprezentare dublă a valorii EXP=0. Dacă nexp=8, EXP ; ], respectiv dacă nexp=15, EXP 16383 ; 16383 ]. (ii) Reprezentarea exponentului în complemenet faţă de 2: C 2. Domeniul de valori este: EXP nexp-1 ) ; ( nexp-1 1)] Dacă nexp=8, EXP ; ], respectiv dacă nexp=5, EXP 16384 ; 16383 ]. (iii) Conform standardului IEEE 754-2008, reprezentarea exponentului polarizat cu valoarea Exponent bias (Tabela 4). Pornind de la reprezentarea exponentului în valoare absolută{sgn, ABS}, se adună exponentului valoarea bias=( nexp-1-1) numită şi bias sau offset. Valorile bias pentru cele trei tipuri de precizie sunt specificate în tabela 4. In acest caz, bitul cel mai semnificativ al exponentului va fi egal cu 1 pentru valorile supraunitare, cu reprezentare dublă a valorii EXP=0. Valoarea unui număr real poate fi subunitară, zero sau supraunitară; In urma operaţiilor aritmetice cu numere reale, se pot obţine valori foarte mici denumite Infinitul mic.dacă valoarea exponentului devine EXP= - nexp-1 numărul este considerat ca fiind egal cu zero, indiferent care sunt cifrele semnificative. In urma operaţiilor aritmetice cu numere reale, se pot obţine valori foarte mari nexp-1 denumite Infinitul mare.dacă valoarea exponentului devine EXP= numărul este considerat ca fiind egal cu.

Convenţie: EXP= - nexp-1 şi EXP= nexp-1 ar putea reprezenta infinitul mic şi infinitul mare ( nexp-1-1).. Numerele reprezentabile vor avea exponentul între -( nexp-1-1) şi Exemple de reprezentare a numerelor reale în simplă precizie, cu hidden bit şi cu bias al exponentului: Exemplul R1: Valoarea zecimala x = -2.125 Binar 32 biţi: C0080000 Status Semn[1] Exponent [8] Mantissa [23] Normal 1 (-) 10000000 (+1) 1.00010000000000000000000 (1.125) Exemplul R2: Valoarea zecimala x = -1.126 Binar 32 biţi: BF9020C5 Status Sign [1] Exponent [8] Mantissa cu bit ascuns [23] Normal 1 (+) 01111111 (0) 1.00100000010000011000101 (1.126000) Aplicarea regulii bit de gardă al mantissei: 1.00100000010000011000101 1.001000000100000110001001 bit 31 30 23 22 0-2.125 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0-1.126 1 0 1 1 1 1 1 1 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 1 0 1 sgn exponent 8 biţi bias=127 mantissa normalizata 23 biţi cu hidden bit Tabela 5: Reprezentarea în simplă precizie a numerelor -2.125 şi -1.126 Concluzie: Partea fracţionară va căpăta o conversie exactă numai în cazuri particulare în care ea este o sumă a puterilor negative ale lui 2. Deoarece numărul de biţi alocaţi fracţiei este finit, rezultă că reprezentarea totală a numărului prezintă o eroare (se referă la faptul ca procesul de conversie este încheiat la un moment dat). Evaluarea eroarii maxime pentru reprezentarea în simplă precizie: 1 1 1 n m 23 m..... 24 25 23 2 2 2 1) Unele sisteme de calcul păstrează şi următorul bit după cei n biţi rămaşi ai fracţiei, iar acesta poartă denumirea de bit de gardă. (Dacă ar fi 1 atunci se adaugă la ultimul bit 1 şi se aplică regula de deplasare a depăşirii.) Normalized binary value: 1.00100000010000011000101 1.001000000100000110001001 2) Primul bit al mantissei normalizate trebuie să fie 1. MSB (most semnificative bit) al manstissei nu se mai memorează. Mantissa translatată la stânga cu un pas, iar acel 1 este implicit, dar se va ataşa în calcul. (Convenţia de bit ascuns (hidden bit))

1.7. Insumarea numerelor reale In analiza cazurilor de însumare vom utiliza reprezentarea pe cuvinte de 32 de biţi (precizie simplă), conform standardului IEEE 754-2008. In blocul de calcul aritmetic procesarea se execută separat asupra celor trei entităţi {Semn, Exponent, Mantissa}, iar rezultatul operaţiei aritmetice va fi procesat conform standardului IEEE 754-2008. Fie X şi Y cei doi operanzi şi S rezultatul însumării (adunare / scădere). Mantissa normalizată a fiecărui operand are valoarea val după introducerea bitului ascuns în blocul de calcul aritmetic Se vor analiza următoarele cazuri: 1) Insumarea a două numere cu acelaşi semn şi acelaşi ordin de mărime. Fiecare operand are valoarea X, Y suma are valoarea S exponentul sumei va fi majorat cu 1 în urma normalizării, iar semnul este semnul comun al operanzilor. Exemplu : fie X şi Y doua numere reale şi S suma acestora. Cei doi operanzi au acelaşi semn şi acelaşi ordin de mărime. X = 7.375 = 1.84375 * 2 2 = 40EC0000 Y = 5.625 = 1.40625 * 2 2 = 40B40000 S = X+Y = 13.000= 1.62500 * 2 3 = 41500000 Regula: E X = E Y = 2 = 129 biased ; E S = 3 = 130 biased. sgn X = sgn Y = 0. Reprezentarea pe 32 biţi (Simple Precision) în unitatea aritmetică a celor doi operanzi X şi Y, procesarea intermediară PI şi suma S sunt ilustrate în tabela 6. Bitul ascuns hid extinde reprezentarea mantissei la 24 biţi şi este adaugat în unitatea aritmetică cu valoarea implicită 1 (nefiind stocat în memorie). Linia PI din tabelă conţine adunarea mantisselor extinse M X + M Y, iar bit23 reprezintă transportul care va genera creşterea cu 1 a exponentului. Pentru obţinerea mantissei sumei S se deplasează spre dreapta cu un bit bit23 -> hid, hid -> bit22 bit0 -> bit-1 (bit de garda). In urma operaţiei, exponentul creşte cu o unitate, iar rezultatul sumă se împarte la 2 (Deplasare catre LSB cu un bit a rezultatului). Bitul LSB se pierde, sau devine bit de gardă. Erorile se acumulează în erorile de calcul; Exponentul se obţine din incrementarea cu 1 a exponentului comun celor doi operanzi. bit 31 30 29 28 27 26 25 24 23 hid 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0-1 X 0 1 0 0 0 0 0 0 1 1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0-40EC0000 Y 0 1 0 0 0 0 0 0 1 1 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0-40B40000 PI 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - S 0 1 0 0 0 0 0 1 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 41500000 Tabela 6: Procesarea însumării numerelor 7.375 şi 5.625. 2) Insumarea a două numere cu acelaşi semn şi ordine de mărime diferite. Fie : X1 şi Y1 două numere reale şi S1 suma acestora. Cei doi operanzi au acelaşi semn şi acelaşi ordin de marime. X1 = 7.375 = 1.84375 * 2 2 = 40EC0000 Y1 = 0.625 = 1.25 * 2-1 = 3F200000 S = X1+Y1 = 8.000= 1.0 * 2 3 = 41000000 Regula: E X1 = 2 = 129 biased, iar E Y1 = -1 = 126 biased ; E S1 = 3 = 130 biased. sgn X1 = sgn Y1 = 0. Regula. Mastissa numărului cu exponentul mai mic se axează (se aliniează) faţă de mantissa numărului cu exponent mai mare. Reprezentarea pe 32 biţi (Simple Precision) în unitatea aritmetică a celor doi operanzi X1 şi Y1, Ya imaginea deplasată spre dreapta cu 3 poziţii (alinierea operanzilor), începând cu bitul hid şi se completează cu 0 biţii din stânga bitului hid şi suma S1, sunt ilustrate în tabela 7.

bit 31 30 29 28 27 26 25 24 23 hid 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0-1 X1 0 1 0 0 0 0 0 0 1 1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0-40EC0000 Y1 0 0 1 1 1 1 1 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0-3F200000 Ya 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 40940000 S1 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 41000000 Tabela 7: Procesarea însumării numerelor 7.375 şi 0.625. 3) Insumarea a două numere cu semne opuse şi acelaşi ordin de mărime. Fiecare operand are valoarea X, Y suma S exponentul sumei va fi calculat în urma normalizării, iar semnul se va determina în urma însumării mantisselor. Exemplu : fie X şi Y două numere reale de semne opuse şi S suma acestora. Cei doi operanzi au semne opuse şi acelaşi ordin de mărime. X = -4.5 = -1.125 * 2 2 = C0900000 Y = 4.25 = 1.0625 * 2 2 = 40880000 In tabela 8 sunt prezentate operaţiile efectuate în blocul aritmetic asupra mantisselor operanzilor X şi Y. In blocul aritmetic se introduc cei 23 de biţi ai mantisselor (Bit 0-Bit 22), bitul ascuns (Bit 23) care are valoarea implicită 1 şi bitul semnului (Bit 24) care are valoarea 0 deoarece mantissele sunt reprezentate în valoare absolută - vezi liniile M1 (X) şi M2 (Y) în tabela. Pentru efectuarea operatiei se parcurg următorii paşi: a) Se complementează în C 2 mantissa operandului negativ - vezi linia C2 (M1); b) Se execută adunarea celor doi operanzi vezi linia S= C2 (M1)+M2(Y); c) Deoarece rezultatul de la b) este un număr negativ ( S<0) este necesară reprezentarea valorii absolute a sumei S şi se complementeaza faţă de 2 vezi linia C2 (S). d) Normalizarea mantissei sumei S se realizează prin deplasarea spre stânga a valorii de pe linia C2 (S) până când bit 23 = 1 - vezi linia S_Axat. e) Exponentul sumei, E(S) = E(X/Y) 4, se calculează din exponentul comun al operanzilor diminuat cu o unitate pentru fiecare deplasare de normalizare a mantissei sumei. f) Semnul sumei este dat de bit 24 - vezi linia S= C2 (M1)+M2(Y) In urma acestor operaţii se va obtine reprezentarea normalizată a sumei: S = X + Y = -0.25 = -1.0 * 2-2 = BE800000 Bit 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 M1 (X) 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 C2 (M1) 1 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 M2 (Y) 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 S= C2 (M1)+M2(Y) 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 C2 (S) 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 S_Axat 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Tabela 8: Procesarea mantisselor pentru suma S = X + Y. 4) Insumarea a două numere cu semne opuse şi ordine de mărime diferite. Fiecare operand are valoarea X, Y suma S şi exponentul sumei vor fi calculate în urma normalizării, iar semnul se va determina în urma însumării mantisselor. Exemplu : fie X şi Y două numere reale de semne opuse şi S suma acestora. Cei doi operanzi au semne opuse şi ordine de marime diferite. X = -2.75 = -1.375 * 2 1 = C0300000 = - 0.6875 * 2 2 Y = 4.5 = 1.125 * 2 2 = 40900000 In tabela 9 sunt prezentate operaţiile efectuate în blocul aritmetic asupra mantisselor operanzilor X şi Y. In blocul aritmetic se introduc cei 23 de biţi ai mantisselor (Bit 0-Bit 22), bitul ascuns (Bit 23) care are valoarea implicită 1 şi bitul semnului (Bit 24) care are valoarea 0 deoarece mantissele sunt reprezentate în valoare absolută (vezi liniile M1 (X) şi M2 (Y) în tabelă). Pentru efectuarea operaţiei se parcurg urmatorii paşi:

a) Se aliniaza mantissa operandului mai mic, M1 (X), prin deplasare spre dreapta cu un bit (vezi linia M1_Axat); b) Se complementeaza în C 2 mantissa operandului negativ X (vezi linia C2 (M1)); c) Se execută adunarea celor doi operanzi vezi linia S = C2 (M1_Axat)+M2(Y); d) Normalizarea mantissei sumei S se realizează prin deplasarea spre stânga cu doi biţi a valorii de pe linia S = C2 (M1_Axat)+M2(Y) până când bit 23 = 1 (vezi linia S_Axat). e) Exponentul sumei: se calculează din exponentul comun al operanzilor diminuat cu o unitate pentru fiecare deplasare de normalizare a mantissei sumei, deci E(S) = E(Y) 2. f) Semnul: suma S este pozitivă (bit 24 = 0) - vezi linia S = C2 (M1_Axat)+M2(Y) In urma acestor operaţii se va obţine reprezentarea normalizată a sumei asamblată pe 32 biţi: S = X + Y = 1.75 = 1.75 * 2 0 = 3FE00000 Bit 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 M1 (X) 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 M1_Axat 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 C2 (M1_Axat) 1 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 M2 (Y) 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 S= C2 (M1)+M2(Y) 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 S_Axat 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Tabela 9: Procesarea mantisselor pentru suma S = X + Y. Concluzii privind reprezentarea şi operaţia aritmetică de însumare a numerelor reale: Numerele reale sunt reprezentate în memoria internă conform standardului IEEE 754-2008 (vezi tabela 4). Standardul defineşte tipurile de precizie a reprezentării astfel: 32 biţi Simple precision - SP, 64 biţi Double precision - DP, 128 biţi Quad precision - QP. Semnul Sgn: bitul cel mai semnificativ MSB. Notă: Sgn=0 pentru numere pozitive. Exponentul Exp: următorii 8, 11, respectiv 15 biţi sunt alocaţi exponentului E biased, puterea lui 2 a valorii normalizate adunată cu 2 7, 2 10, respectiv 2 14 în reprezentarea internă. Mantissa normalizată M N : Restul de biţi N M = [23, 52, 112] sunt alocaţi cifrelor binare ale numărului. Operaţiile generale de procesare în blocul aritmetic al sistemului asupra entităţilor {Sgn, Exp, Mantissa normalizată M N }: I. Se încarcă din memorie în blocul aritmetic cei doi operanzi Op1 şi Op2; II. Se calculează diferenţa exponenţilor D Exp = (Exp1 Exp2). III. Prelucrarea mantisselor M1 şi M2 se realizează pe cuvinte de N M + 2 biţi (se introduce bitul ascuns - hid cu valoarea 1 şi semnul plus cu valoarea 0 pe poziţia MSB); operaţiile sunt: i. Denormalizarea: se deplasează spre dreapta cu D Exp poziţii mantissa operandului cu ordin de mărime inferior; biţii care se introduc prin stânga au valoarea 0, iar cei din dreapta se pierd; ii. Complementarea C 2 : dacă un singur operand este negativ se va aplica operaţia de complementare faţa de doi (C 2 ) a mantissei acestuia; iii. Insumarea mantisselor S = M1+M2. IV. Normalizarea rezultatului însumării se bazează pe {Sgn1,Sgn2}, {Exp1,Exp2} şi valoarea sumei S (punctul III. iii.) i. Dacă Sgn1 = Sgn2: semnul sumei Sgn va fi semnul comun al celor doi operanzi; se deplasează spre stânga mantissa S până când pe poziţia hid ajunge primul bit 1, concomitent cu decrementarea exponentului major cu valoarea numărului de deplasări; ii. Dacă Sgn1 Sgn2: semnul sumei Sgn va fi semnul mantissei S; se aplică complementul C 2 (S) şi apoi se normalizează mantissa lui S până când pe poziţia hid ajunge primul bit 1, concomitent cu decrementarea exponentului major cu numărul de deplasări.

Reprezentări şi operaţii cu numere întregi PROBLEME P1 - rezolvată: Fie numerele întregi N1 = -25751 şi N2 = +18600 Sa se determine reprezentarea celor două numere în cod binar şi în cod hexazecimal: a) Reprezentarea celor două numere pe 16 biţi prin valoare absolută (Abs); b) Reprezentarea lui N1 în complement 1 (C1) şi în complement 2 (C2); c) Sa se calculeze suma Suma = N1 + N2; imaginea binară se va converti în (S, Abs). Rezolvare: Conversia binară se obţine prin împărţiri succesive la 2 a câtului obţinut; restul împărţirii reprezintă cifrele binare în ordinea de la LSB la MSB. Reprezentarea hexazecimală a celor două numere este prezentată în tabelele 1 şi 2. Abs(N1) = 6497, C1(N1) = 9B68, C2(N1) = 9B69 N2 = 48A8 25751 12875 6437 3218 1609 804 402 201 100 50 25 12 6 3 1 0 S 2 0 2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 2 10 2 11 2 12 2 13 2 14 2 15 Abs 1 1 1 0 1 0 0 1 0 0 1 0 0 1 1 0 Abs hex 7 9 4 6 C1 0 0 0 1 0 1 1 0 1 1 0 1 1 0 0 1 C1 hex 8 6 B 9 C2 1 0 0 1 0 1 1 0 1 1 0 1 1 0 0 1 C2 hex 9 6 B 9 Tabela 1: Reprezentarea lui N1; citirea valorilor se face de la dreapta la stânga. 18600 9300 4650 2325 1162 581 290 145 72 36 18 9 4 2 1 0 S 2 0 2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 2 10 2 11 2 12 2 13 2 14 2 15 Abs 0 0 0 1 0 1 0 1 0 0 0 1 0 0 1 0 Abs hex 8 A 8 4 Tabela 2: Reprezentarea lui N2; citirea valorilor se face de la dreapta la stânga. 18600 9300 4650 2325 1162 581 290 145 72 36 18 9 4 2 1 0 S 2 0 2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 2 10 2 11 2 12 2 13 2 14 2 15 C2(N1) 1 0 0 1 0 1 1 0 1 1 0 1 1 0 0 1 N2 0 0 0 1 0 1 0 1 0 0 0 1 0 0 1 0 Suma 1 0 0 0 1 0 0 0 0 0 1 0 0 1 1 1 Suma hex 1 1 4 E Abs Suma 1 1 1 1 0 1 1 1 1 1 0 1 1 0 0 0 Abs Sumahex F E B 1 P2: Fie numerele întregi N3 = -21800 şi N4 = +28480. Rezolvaţi punctele a), b), c) de la problema P1 şi d) Calculaţi Dif = N4-N3 şi obsevaţi depaşirea capacităţii de reprezentare pe 16 biţi (overflow); extindeţi reprezentarea la long integer Răspuns: a) Abs(N3) = 5528, Abs(N4) = 6F40; b) C1(N3) = AAD7, C2(N3) = AAD8; c) N3+N4 = 1A18; d) Dif = 4468 pe 15 biţi semnificativi şi se observă depăşirea prin bitul de semn care are valoarea 1; reprezentarea pe 32 biţi va fi: 0000C468

Reprezentări şi operaţii cu numere reale P3: Fie numerele reale R1 = -20016.640625 şi R2 = 93976.546875. a) Să se reprezinte R1 şi R2 pe cuvinte de 32 biţi (simple precision), conform standardului IEEE 754-2008. Rezolvare: Partea întreagă se trece în binar prin regulile de conversie ale numerelor întregi, iar partea fracţionară se obţine prin înmulţiri succesive cu 2. Observaţie: procesul de conversie a părţii fracţionare este în general divergent. R1: int(r1) = 4E30 = 100111000110000; fr(r1) = 101001 R2: int(r2) = 16F18 = 10110111100011000; fr(r2) = 100011 R1= - 2 14 * (1.00111000110000101001) şi R2= + 2 16 * ( 1. 0110111100011000100011) Exponentul biased se obţine prin adunarea cu 127, deci: E(R1) = 141 = 10001101 şi E(R2) = 143 = 10001111 Reprezentarea R1 şi R2 pe cuvinte de 32 biţi (simple precision), conform standardului IEEE 754-2008 este ilustrată în tabela următoare. Semnul este reprezentat pe bitul 31, exponentul biased ocupă câmpul [bit 30 bit 23] şi mantissa normalizată ocupă câmpul [bit 22 bit 0]. Valorile hexazecimale sunt: R1 = C69C6148 şi R2 = 47B78C46. bit 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 R1 1 1 0 0 0 1 1 0 1 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 0 1 0 0 1 0 0 0 R2 0 1 0 0 0 1 1 1 1 0 1 1 0 1 1 1 1 0 0 0 1 1 0 0 0 1 0 0 0 1 1 0 b) Sa se calculeze S = R1 + R2 şi să se reprezinte conform conform standardului IEEE 754-2008. Se efectuează următoarea secvenţa de operaţii: Op1. Se completează mantissele normalizate cu bitul ascuns (bit 23 = 1) şi semnul (bit 24 = 0); Op2. Se aliniază mantissa lui R1 prin deplasare spre dreapta cu doi biţi (diferenţa exponenţilor), introducând valoarea 0 în partea stânga; Op3. Se reprezintă mantissa lui R1 în complement faţă de 2 (C2), deoarece operandul este negativ; Op4. Se însumează cele două mantisse prelucrate: S = M1 + M2 Operatie bit 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Op1 M1(R1) 0 1 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 0 1 0 0 1 0 0 0 Op2 AlignM1 0 0 0 1 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 0 1 0 0 1 0 Op3 C2 1 1 1 0 1 1 0 0 0 1 1 1 0 0 1 1 1 1 0 1 0 1 1 1 0 Op1 M2(R2) 0 1 0 1 1 0 1 1 1 1 0 0 0 1 1 0 0 0 1 0 0 0 1 1 0 Op4 M1 +M2 0 1 0 0 1 0 0 0 0 0 1 1 1 0 0 1 1 1 1 1 1 0 1 0 0 Op5. Asamblarea rezultatului: Sgn(bit31) = 0, Exp(S) = Exp(R2), Mantissa normalizată a sumei se preia din linia Op4, câmpul {bit 22,...,bit 0}. bit 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 S 0 1 0 0 0 1 1 1 1 0 0 1 0 0 0 0 0 1 1 1 0 0 1 1 1 1 1 1 0 1 0 0 hex 4 7 9 0 7 3 F 4 P4: Să se rezolve problema P3 pentru numerele X = -87654.123 şi Y = 34567.89 Răspuns: a) X = C7AB3310, Y = 470707E4; b) S = X+Y = C74F5E3C Nota: Se va observa că procesul de conversie al părţilor fracţionare este divergent, deci reprezentarea nu este exactă.