Sunteți pe pagina 1din 4

Lucrare de laborator nr.

2
Reprezentarea intern a datelor
Introducere
Scopul lucrrii este nelegerea reprezentrii interne a diferitelor tipuri de date n
calculator. Se vor studia i exemplifica modurile de reprezentare a numerelor ntregi (n
Mrime i Semn, n Complement fa de 1 (C1), Complement fa de 2 (C2), n binar zecimal
mpachetat i despachetat (BCD)), precum i a numerelor reale (formatul IEEE scurt, lung i
temporar).
Reprezentarea numerelor ntregi n Mrime i Semn (MS) n Complement fa
de 1 i de 2 (C1,C2)
n general, constantele i variabilele ntregi se reprezint pe un octet, pe un cuvnt (2
octei), dou cuvinte (dublu cuvnt), sau patru octei. La toate reprezentrile bitul cel mai
semnificativ reprezint semnul, iar restul reprezentrii (ceilali bii) se folosesc pentru
reprezentarea n binar a numrului (numerele negative au o reprezentare diferit a modulului
n cele trei tipuri de reprezentri).
Exist deci dou cmpuri n reprezentarea numerelor ntregi: semnul i modulul. La
toate cele trei moduri de reprezentare semnul este 0 pentru numerele pozitive i 1 pentru
numerele negative.
Cmpul pentru modul se reprezint astfel:
La reprezentarea n mrime i semn (MS) se reprezint modulul numrului, deci
reprezentarea unui numr se va face punnd 0 sau 1 pe bitul semn, n funcie de valoarea
pozitiv, respectiv negativ a numrului, iar pe restul reprezentrii se va pune valoarea
modulului su n baza 2.
La reprezentarea n complement fa de 1 (C1) dac numrul este pozitiv, reprezentarea
este la fel ca la mrime i semn, adic se reprezint modulul numrului, iar bitul semn este
implicit 0. Dac numrul este negativ, atunci se complementeaz toi biii reprezentrii
numrului n modul, adic biii 1 devin 0 iar cei cu valori 0 devin 1, astfel ca bitul semn va
fi pe 1. Trebuie reinut faptul c se face complementarea reprezentrii numrului n modul,
adic se reprezint mai nti numrul pozitiv, dup care se complementeaz toi biii.
La reprezentarea n complement fa de 2, dac numrul este pozitiv se reprezint la fel ca
la mrime i semn, respectiv ca la complement fa de 1, adic se reprezint numrul n
modul, iar bitul de semn este 0. Dac numrul este negativ, atunci se complementeaz fa
de 2 reprezentarea numrului n modul i anume se scade din valoarea 2 n+1 (unde n este
numrul de bii pe care se face reprezentarea, bitul de semn devenind automat 1)
reprezentarea n modul; o alt cale de a obine reprezentarea n complement fa de 2 a
numerelor negative este adugnd valoarea 1 la reprezentarea numrului negativ n
complement fa de 1.
Din modul de reprezentare a numerelor n cele trei forme rezult c numerele pozitive
au aceeai reprezentare att n mrime i semn ct i n complement fa de 1 i n
complement fa de 2.

O atenie sporit trebuie acordat spaiului minim (numr minim de octei) pe care se
poate reprezenta un numr n cele trei moduri de reprezentare. De exemplu cnd se dorete
aflarea numrului minim de octei pe care se poate reprezenta numrul 155 trebuie s se in
cont c pentru reprezentarea modulului este la dispoziie mai puin cu un bit (cel de semn) din
spaiul ales pentru reprezentare. n acest caz dei valoarea modulului su ncape pe un octet
(155 = 9Bh), numrul nu se poate reprezenta pe un octet n nici un mod de reprezentare,
deoarece bitul semn trebuie reprezentat separat, altfel la interpretarea reprezentrii 9Bh,
primul bit fiind 1, reprezentarea va fi a unui numr negativ n loc de numrul dorit. n
concluzie, pentru reprezentarea numrului 155 va fi nevoie de minim 2 octei (reprezentarea
se face pe multiplu de octei), iar numrul fa fi reprezentat astfel: 009Bh n toate cele trei
moduri de reprezentare, fiind pozitiv.
Exemple:
S se reprezinte pe 4 octei urmtoarele numere: 157, 169, -157, -169
157(D) = 1001 1101(B) = 9D(H)
Deci reprezentarea in MS. C1 si C2 va fi 00 00 00 9D (H)
169(D) = 1010 1001(B) = A9(H)
Deci reprezentarea in MS, C1 si C2 va fi: 00 00 00 A9 (H)
Pentru 157, se reprezint mai nti n modul (este calculat mai sus) i se obine:
MS: 1000 0000 0000 0000 0000 0000 1001 1101 (B) = 80 00 00 9D (H)
C1: 1111 1111 1111 1111 1111 1111 0110 0010 (B) = FF FF FF 62 (H)
C2: 1111 1111 1111 1111 1111 1111 0110 0011 (B) = FF FF FF 63 (H)
Pentru 163 analog:
MS: 80 00 00 A9 (H)
C1: FF FF FF 56 (H)
C2: FF FF FF 57 (H)
Reprezentarea numerelor reale n format IEEE
Standardul IEEE de reprezentarea numerelor reale propune trei moduri de reprezentare
pentru numerele reale:
Formatul scurt pe 4 octei
Formatul lung pe 8 octei
Formatul temporar pe 10 octei
Numerele reale se reprezint n formatele scurte i lungi n memoria calculatorului,
iar formatul temporar se gsete la ncrcarea numerelor reale n coprocesorul matematic .
Toate cele trei formate conin trei pri:
Semn

Caracteristic

Mantis

Bitul de semn S
Caracteristica C (pe 8, 11, respectiv 15 bii, la formatul scurt, lung, temporar)
Mantisa M (pe 23, 52, respectiv 64 bii)

Pentru fiecare reprezentare:


S este 0 dac numrul este pozitiv i 1 dac numrul este negativ
Caracteristica = Exponent + 7Fh (respectiv 3FFh la IEEE lung i 3FFFh la formatul temporar)
Pentru gsirea mantisei mai nti se normalizeaz numrul scris n baza 2, adic se scrie
numrul sub forma: NR = 1.<alte cifre binare> * 2exponent.
La reprezentarea n format IEEE scurt i lung, mantisa este format din cifrele de dup
virgul, deci primul 1 dinaintea virgulei nu se mai reprezint n mantis, iar la formatul
temporar se reprezint toate cifrele din numr.
Exemple:
S se reprezinte n format IEEE scurt numrul 17,6(D).
Se va converti separat partea ntreag i cea zecimal i se obine:
Partea ntreag: 17(D) = 11(H) = 0001 0001(B)
Partea zecimal: 0,6(D) = 0,(1001)(B) (se observ c numrul este periodic)
Deci 17,6(D) = 10001,(1001)(B)
Se normalizeaz numrul: 17,6(D) = 10001,(1001)(B) = 1,0001(1001) * 2 4 (dei era
mai corect n loc de 24 s se scrie 10100(B) pentru c notarea era in baza 2, faptul c se
calculeaz caracteristica mai uor n hexa dect in binar poate fi o scuz motivat).
Din aceast reprezentare se poate deduce mantisa (ceea ce este dup virgul, deci fr
acel 1 dinaintea virgulei care prin convenie nu se mai reprezint) i anume:
M = 0001(1001)(B).
n continuare se calculeaz caracteristica: C = exponent + 7F(H) = 4+7F(H) = 83(H) =
1000 0011(B)
Se va scrie bitul semn 0 i deja se poate trece la scrierea reprezentrii:
0
1000 0011
semn caract.

00011001100110011001100
mantis

Pentru a scrie reprezentarea n hexa se vor grupa cte 4 cifre binare. Atenie ns la
faptul ca gruparea a cte 4 cifre nu va corespunde caracteristicii, datorit bitului de semn care
decaleaz o poziie. Deci cifrele hexa ale caracteristicii nu se vor regsi n reprezentarea
notat in hexa.
Rezultatul final al reprezentrii este: 41 8C CC CC(H).
n cazul practic, n memoria calculatorului, datorit unei rotunjiri care se face la
ultimul bit al reprezentrii, se poate observa c n mantis ar mai urma un 1 dup cei 23 de
bii, iar calculatorul va face rotunjire superioar, de aceea pe ultimul bit (cel mai puin
semnificativ) va apare 1, iar reprezentarea va fi :
41 8C CC CD(H).
n mod analog se va reprezenta 23,5(D):
23(D) = 17(H) = 1 0111(B)
0,5(D) = 0,1(B)
Deci 23,5(D) = 10111,1 = 1,01111 * 2 4 de unde rezult M = 0111100000000000 (23 de
bii)
Caracteristica = 7F(H) + 4(H) = 83(H)
Se pune bitul semn pe 1.
Reprezentarea direct in hexa este C1 BC 00 00(H).

n continuare se pune problema invers reprezentrii: se d reprezentarea unui numr


n format IEEE scurt i se cere aflarea numrului real care este astfel reprezentat.
Exemplu:
Se d reprezentarea 43 04 33 33 (H) i se cere valoarea zecimal a numrului real
reprezentat.
Se scrie in binar reprezentarea: 0100 0011 0000 0100 0011 0011 0011 0011
De aici se deduce c:
Semnul este 0
Caracteristica este C = 1000 0110 (B) = 86(H)
Rezult deci c exponentul este 86(H) 7F(H) = 7 (H)
Mantisa M = 0000 1000 0110 0110
Numrul este Nr = 1,mantisa * 2 exponent = 1,0000 1000 0110*2 7 =
= 1000 0100,00110011= 128 + 4 + 0.125 + 0.0625 +
132,1875 a crei valoare exact era 132,2.
Reprezentarea numerelor n BCD mpachetat i despachetat
Pe lng modurile de reprezentare a numerelor ntregi n mrime i semn, complement
fa de 1 i de 2 mai exist reprezentarea n BCD mpachetat i despachetat.
n reprezentarea BCD mpachetat se reprezint cte o cifr zecimal pe 4 bii, deci
cte 2 cifre zecimale pe octet.
n reprezentarea BCD despachetat se reprezint cte o cifr zecimal pe octet (deci pe
primii patru bii se pune 0).
Aceste moduri de reprezentare se folosesc i pentru o mai bun lizibilitate a numerelor
din punct de vedere al programatorului, chiar dac aceasta se face prin pierderea unei bune
poriuni din spaiul de reprezentare (la BCD despachetat nu se mai folosesc codurile pe patru
bii care trec ca valoare de 9, iar la BCD despachetat se mai pierde nc jumtate de octet n
plus.
Pentru a putea realiza operaii cu numere reprezentate n BCD exist instruciuni
suplimentare de corecie a rezultatului dup adunare, nmulire care se vor studia n lucrarea
cu instruciuni pentru operaii aritmetice.
Exemplu:
Numrul 3912(D) se va reprezenta n BCD
mpachetat: 39 12(H) deci pe 2 octei;
despachetat 03 09 01 02(H) deci pe 4 octei.
Mersul lucrrii

Se vor reprezenta n MS, C1 i C2 numerele ntregi prezentate n exemplele de


mai sus.
Se vor reprezenta n format IEEE scurt numerele reale.
Se vor realiza dou exemple de aflare a numrului real dndu-se valoarea
reprezentrii.