Reprezentarea Numerelor Si Operatii Aritmetice in Sisteme de Calcul

14
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:

description

curs

Transcript of Reprezentarea Numerelor Si Operatii Aritmetice in Sisteme de Calcul

Page 1: Reprezentarea Numerelor Si Operatii Aritmetice in Sisteme de Calcul

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 X1= -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

103), 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 X2 =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:

Page 2: Reprezentarea Numerelor Si Operatii Aritmetice in Sisteme de Calcul

- 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*103+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:

Vmax= 10n-1 (Ex. pentru n=4, Vmax= 9999)

Vmin= -(10n-1) (Ex. pentru n=4, Vmin= -9999)

interval de 2*10n

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 bitn-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 * Bi, 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ă.

Page 3: Reprezentarea Numerelor Si Operatii Aritmetice in Sisteme de Calcul

Pe baza repetării algoritmului de împărţire cu rest:

qj = qj+1 * B + rj,

unde B este baza sistemului receptor al conversiei, qj+1 sunt câturile împăţirilor

succesive, iar rj sunt cifrele numărului convertit la noua baza.

Notă: q0 = 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 qm = 0.

N= (αn-1*2n-1

+ αn-2*2n-2

+...+α1*21+α0*2

0 ) : 2 = (αn-1*2

n-2+ αn-2*2

n-3+...+ α1*2

0) +

+ (α0*2-1

). Deci restul r0 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 20

21 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 27 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:

210

=1024=1K (Kilo),

220

=10242=1M (Mega),

230

=10243=1G (Giga),

240

=10244=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)]

ABSmax=(111……1) pentru cele (n-1) poziţii;

ABSmin= (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

Page 4: Reprezentarea Numerelor Si Operatii Aritmetice in Sisteme de Calcul

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: C1

Reprezentarea în complement faţă de 1, C1(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 = 49hex, C1(N) = 1011 0110 = B6hex.

Se observă că N + C1(N) = 1111 1111 = FFhex

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: C2

Complementul faţă de 2 se obţine conform regulii: C2(N)=C1(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 C2(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}, C1 şi C2 î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 C1(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 C2(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 - C2”, deoarece acesta tratează în mod unitar operaţiile

aritmetice de adunare sau scădere.

Operaţia de adunare (scădere) se realizează modulo 2n-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:

Page 5: Reprezentarea Numerelor Si Operatii Aritmetice in Sisteme de Calcul

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”

C2 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

C2(19720) 1 0 1 1 0 0 1 0 1 1 1 1 1 0 0 0 B2F8+

C2(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

C2(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+

C2(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ă bit2n-1 este:

- bit2n-1 = 0 dacă semnele celor doi operanzi sunt egale,

- bit2n-1 = 1 dacă semnele celor doi operanzi sunt opuse.

Operaţia logică a semnului rezultat este sgn(P) = sgn(X) XOR sgn(Y).

Page 6: Reprezentarea Numerelor Si Operatii Aritmetice in Sisteme de Calcul

(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 C2(Z) dacă semnele celor

doi operanzi sunt opuse.

(iv) Calculul produsului este un proces secvenţial de obţinere de „Produse parţiale”

Ppj 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 Pp1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 000B

2 Pp2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0000

3 Pp3 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 002C

4 Pp4 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” Ppj, şi

este dată de relaţia:

n-2

P= ± ∑ yi * (X * 2i), unde yi 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 * 20) + 0* (B * 2

1) + 1 * (B * 2

2) + 1 * (B * 2

3)

Page 7: Reprezentarea Numerelor Si Operatii Aritmetice in Sisteme de Calcul

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).

r=sgn(I.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 ni, şi numărul de cifre ale părţii fracţionare nf.

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

Exponent

E

Exponent

bias

Mantissa

Normali-

zată MN

Lungimea

cuvântului

Precizia

reprezentării

Număr

de cifre

zecimale

Single 1

bit31 8

bit30-bit23 127 23

bit22-bit0

32

bit31-bit0 24 ~7.2

Double 1

bit63 11

bit62-bit52 1023 52

bit51-bit0 64

bit63-bit0 53 ~15.9

Quad 1

bit127 15

bit126-bit112 16383 112

bit111-bit0 128

bit127-bit0 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ă (MN) reprezintă valoarea absolută a imaginii binare a numărului

respectiv MN = Abs(x) normalizat. Primul bit al MN este egal cu 1.

Conform standardului IEEE 754-2008, în reprezentarea internă în memorie a MN bitul cel

Page 8: Reprezentarea Numerelor Si Operatii Aritmetice in Sisteme de Calcul

mai semnificativ (ponderea puterii 20) 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:

10x = 2

nm

Aplicând funcţia log10 relaţiei de mai sus şi deoarece log10 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: MN 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: C2.

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

denumite Infinitul mare .Dacă valoarea exponentului devine EXP= nexp-1

numărul

este considerat ca fiind egal cu ∞.

Page 9: Reprezentarea Numerelor Si Operatii Aritmetice in Sisteme de Calcul

Convenţie: EXP= - nexp-1

şi EXP= nexp-1

ar putea reprezenta infinitul mic şi

infinitul mare . Numerele reprezentabile vor avea exponentul între -( nexp-1

-1) şi

( nexp-1

-1).

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:

24 25 23

1 1 123 .... ..

2 2 2m mn

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))

Page 10: Reprezentarea Numerelor Si Operatii Aritmetice in Sisteme de Calcul

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*22 = 40EC0000

Y = 5.625 = 1.40625* 22 = 40B40000

S = X+Y = 13.000= 1.62500* 23 = 41500000

Regula:

EX = EY = 2 = 129biased; ES = 3 = 130biased.

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 MX +

MY, 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*22 = 40EC0000

Y1 = 0.625 = 1.25 * 2-1

= 3F200000

S = X1+Y1 = 8.000= 1.0* 23 = 41000000

Regula:

EX1 = 2 = 129biased, iar EY1 = -1 = 126biased; ES1 = 3 = 130biased.

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.

Page 11: Reprezentarea Numerelor Si Operatii Aritmetice in Sisteme de Calcul

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 * 22 = C0900000

Y = 4.25 = 1.0625* 22 = 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 C2 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 * 21 = C0300000 = - 0.6875 * 2

2

Y = 4.5 = 1.125 * 22 = 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:

Page 12: Reprezentarea Numerelor Si Operatii Aritmetice in Sisteme de Calcul

a) Se aliniaza mantissa operandului mai mic, M1 (X), prin deplasare spre dreapta cu un bit

(vezi linia M1_Axat);

b) Se complementeaza în C2 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 * 20 = 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 Ebiased,

puterea lui 2 a valorii normalizate adunată cu 27, 2

10, respectiv 2

14 în reprezentarea internă.

Mantissa normalizată MN: Restul de biţi NM = [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ă MN}:

I. Se încarcă din memorie în blocul aritmetic cei doi operanzi Op1 şi Op2;

II. Se calculează diferenţa exponenţilor DExp = (Exp1 – Exp2).

III. Prelucrarea mantisselor M1 şi M2 se realizează pe cuvinte de NM + 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 DExp 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 C2: dacă un singur operand este negativ se va aplica operaţia de

complementare faţa de doi (C2) 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 C2(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.

Page 13: Reprezentarea Numerelor Si Operatii Aritmetice in Sisteme de Calcul

PROBLEME

Reprezentări şi operaţii cu numere întregi

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

20 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

Abshex 7 9 4 6

C1 0 0 0 1 0 1 1 0 1 1 0 1 1 0 0 1

C1hex 8 6 B 9

C2 1 0 0 1 0 1 1 0 1 1 0 1 1 0 0 1

C2hex 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

20 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

Abshex 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

20 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

Sumahex 1 1 4 E

AbsSuma 1 1 1 1 0 1 1 1 1 1 0 1 1 0 0 0

AbsSumahex 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

Page 14: Reprezentarea Numerelor Si Operatii Aritmetice in Sisteme de Calcul

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= - 214

* (1.00111000110000101001) şi R2= + 216

* ( 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ă.