Sunteți pe pagina 1din 34

CURS 4

CUPRINS
• Reprezentarea datelor în memoria calculatorului
❑ Reprezentarea numerelor întregi
➢Cod direct
➢Cod invers
➢Cod complementar
❑ Reprezentarea numerelor reale
➢în virgulă fixă
➢în virgulă mobilă
❑ Reprezentarea caracterelor alfanumerice
2
Reprezentarea informaţiei în calculator
Reprezentarea numerelor întregi

• Reprezentarea numerelor întregi în memoria


calculatorului se poate realiza în trei moduri:
1) reprezentare în modul şi semn (cod direct);
2) reprezentare în complement faţă de 1 (cod invers);
3) reprezentare în cod complement faţă de 2 (cod
complementar).

3
Reprezentarea informaţiei în calculator
Reprezentarea numerelor întregi
1) În reprezentarea în modul şi semn (cod direct), bitul din
extremitatea stângă este folosit pentru codificarea semnului.
• Convenţia este următoarea:
✓dacă numărul este pozitiv, bitul de semn trebuie să aibă
valoarea 0;
✓dacă numărul este negativ, bitul de semn trebuie să aibă
valoarea 1.
• Exemplu. Cifrele 6 şi –6 sunt reprezentate în binar pe 8 biţi
sub forma:
6 → 0000 0110
-6 → 1000 0110
4
Reprezentarea informaţiei în calculator
Reprezentarea numerelor întregi
1) În reprezentarea în modul şi semn (cod direct)
• Dezavantaj: Există două reprezentări pentru zero.
• De exemplu, într-o reprezentare pe 8 biţi avem:
+0 → 0000 0000
-0 → 1000 0000
• Acest lucru creează probleme în realizarea circuitelor
electronice pentru adunare, deoarece:
• biţii de semn trebuie trataţi separat când se efectuează
operaţii;
• trebuie definită operaţia de scădere a numerelor astfel
reprezentate. 5
Reprezentarea informaţiei în calculator
Reprezentarea numerelor întregi
2) Complementul față de 1 (cod invers) al unui număr
reprezentat în binar:
• seobţine prin înlocuirea fiecărei cifre binare cu
complementul ei faţă de 1.
• Complementul faţă de 1 al cifrei 0 este 1, iar al cifrei 1 este 0.
• Exemplu. Valorile 6 şi –6 sunt reprezentate în binar, pe 8 biţi
sub forma:
6 → 0000 0110
-6 → 1111 1001
6
Reprezentarea informaţiei în calculator
Reprezentarea numerelor întregi
2) Complementul față de 1 (cod invers):
• Operaţia de scădere se reduce la o operaţie de adunare
prin reprezentarea scăzătorului în cod invers.
• Dacă rezultatul este negativ, atunci el va fi reprezentat tot în
cod invers.
• Dacă apare transport în stânga rangului de semn, acesta se
va aduna la rangul cel mai puţin semnificativ (cel mai din
dreapta) al rezultatului.

7
Reprezentarea informaţiei în calculator
Reprezentarea numerelor întregi
2) Complementul față de 1 (cod invers):
• Exemple. Într-o reprezentare pe 8 biţi operaţia 6-5 se
efectuează astfel:
• 610 = 0 0 0 0 0 1 1 0 2 în cod direct
• 510 = 0 0 0 0 0 1 0 12 în cod direct
• −510 = 1 1 1 1 1 0 1 0 2 în cod invers

8
Reprezentarea informaţiei în calculator
Reprezentarea numerelor întregi
2) Complementul față de 1 (cod invers):
• Exemplu (continuare)
• Se observă cum transportul din stânga rangului de semn se
adună la ultimul bit.
• În aceeaşi reprezentare pe 8 biţi operaţia 6-7 se
efectuează astfel:
6-7 = 6+(-7)

• Se observă că 1 1 1 1 1 1 1 0 este reprezentarea cifrei 1


în cod invers pe o configuraţie de 8 biţi.

9
Reprezentarea informaţiei în calculator
Reprezentarea numerelor întregi
2) Complementul față de 1 (cod invers):
• Observaţie. Şi în acest tip de reprezentare se menţine
dezavantajul reprezentării valorii zero sub două forme,
întâlnit la codul direct.

• Exemplu:

• Se observă cele două reprezentări pentru zero:


00000 000
și
11111 111

10
Reprezentarea informaţiei în calculator
Reprezentarea numerelor întregi
2) Complementul față de 1 (cod invers):
• Pentru a înţelege reprezentarea în cod complementar, să
scriem, de exemplu, operaţia 5-3 sub forma:
5 – 3 = 5 + (10 - 3) -10 = 5 + 7 -10 =12 -10 = 2 .
• Observăm că rezultatul se poate obţine în felul următor:
• se adună la descăzut complementul faţă de 10 al
scăzătorului, adică se face operaţia 5 + 7 =12
• rezultatul final (adică 2) se obţine ignorând transportul
care apare (adică 1).

11
Reprezentarea informaţiei în calculator
Reprezentarea numerelor întregi
• Acestexemplu sugerează ideea ca un număr negativ în
binar să fie reprezentat în cod complement faţă de 2 (cod
complementar).
3) Complementul faţă de 2 al unui număr se obţine astfel:
• se obţine complementul faţă de 1 al numărului;
• se adună valoarea 1 la rangul cel mai semnificativ al
numărului.
• Dacă apare transport la stânga rangului de semn, acesta se
ignoră, iar dacă rezultatul este negativ, acesta este
reprezentat tot în cod complementar faţă de 2.
12
Reprezentarea informaţiei în calculator
Reprezentarea numerelor întregi
3) Complementul față de 2 (cod complementar)
• Observaţie. Folosind acest cod, zero are o unică
reprezentare.
• Exemplu:
• 7 are valoarea 0 0 0 0 0 1 1 1 (în binar)
• 7 are codul invers 11111000
• -7 are codul complementar 1 1 1 1 1 0 0 1

13
Reprezentarea informaţiei în calculator
Reprezentarea numerelor întregi
3) Complementul față de 2 (cod complementar)
• Observaţii:
• Se constată unicitatea reprezentării pentru zero.
• Calculatoarele moderne utilizează pentru reprezentarea
numerelor întregi negative codul complementar.

14
Reprezentarea informaţiei în calculator
Reprezentarea numerelor reale
• Reprezentarea numerelor reale se poate face sub două
moduri:
1) în virgulă fixă;
2) în virgulă mobilă (numită şi reprezentare în virgulă
flotantă sau notaţie ştiinţifică).
1) Reprezentarea în virgulă fixă
• În acest tip de reprezentare,virgula care desparte partea
întreagă de partea subunitară are poziţie fixă.
• De exemplu, dacă într-o reprezentare pe 8 biţi, virgula este
plasată după 4 biţi, numărul N reprezentat în baza 2 are
valorile extreme, după cum urmează:
0000.0000 ≤ 𝑁2 ≤ 1111.1111
sau, corespunzător în baza 10, 15

0.0 ≤ 𝑁10 ≤ 15.9375


Reprezentarea informaţiei în calculator
Reprezentarea numerelor reale
1) Reprezentarea în virgulă fixă
• În cazul în care primul bit este folosit pentru codificarea
semnului, plaja de reprezentare pentru 𝑁10 va fi:
−8.9375 ≤ 𝑁10 ≤ 7.9375
• Se observă că puterea de reprezentare a numerelor reale în
cazul folosirii virgulelor fixe este extrem de mică.
• Dinacest motiv, folosirea virgulei fixe în calculatoarele
moderne se face numai după ultimul rang, reprezentându-se
practic în această manieră numai numerele întregi.

16
Reprezentarea informaţiei în calculator
Reprezentarea numerelor reale
2) Reprezentarea în virgulă mobilă
• Se porneşte de la un rezultat matematic cunoscut, şi anume: orice
număr real 𝛼 poate fi reprezentat în mod unic sub forma (numită
virgulă mobilă normalizată):
𝛼 = 𝑚 ∗ 𝑏 𝑒 , unde:
1
≤ 𝑚 < 1, 𝑏 ≥ 2 număr natural, b număr întreg.
𝑏
• b este baza de reprezentare,
• m se numeşte mantisă,
• e se numeşte exponent.
• Obs. Mantisa indică valoarea exactă a numărului într-un anumit
domeniu, fiind reprezentată de obicei ca un număr fracţionar cu
semn. Exponentul indică ordinul de mărime al numărului.
17
Reprezentarea informaţiei în calculator
Reprezentarea numerelor reale
2) Reprezentarea în virgulă mobilă

• De exemplu, numărul 𝛼 = 1423.208 în baza 10 are


reprezentarea în virgulă mobilă normalizată:
𝛼 = 0.1423208 ∗ 104
• Aici:
e = 4,
b = 10,
iar mantisa m = 0.1423208.
18
Reprezentarea informaţiei în calculator
Reprezentarea numerelor reale
2) Reprezentarea în virgulă mobilă
• Condiția 𝑏1 ≤ 𝑚 < 1 este esențială pentru asigurarea
unicităţii reprezentării.
• Pentru b = 10 condiţia se scrie 0.1 ≤ 𝑚 < 1 , ceea ce este
echivalent cu faptul că prima cifră după virgulă să fie diferită
de 0.
• OBS. În cazul în care se renunţă la această restricţie asupra
mantisei, există o infinitate de reprezentări echivalente.
• De exemplu, numărul 𝛼 = 1423.208 (din exemplul anterior)
se poate scrie echivalent:
0.1423208 ∗ 104 ,
14.23208 ∗ 102 , 19

1423208 ∗ 10−4 etc.


Reprezentarea informaţiei în calculator
Reprezentarea numerelor reale
2) Reprezentarea în virgulă mobilă
• Denumirea de virgulă mobilă vine tocmai de la deplasarea
virgulei, în funcţie de valoarea exponentului.
• Pentru a aduna două numere scrise sub formă normalizată,
trebuie ca ele să aibă acelaşi exponent.
• Dacă exponenţii sunt diferiţi, numărul cu exponent mai mic
este scris în virgulă mobilă nenormalizată, astfel încât noul
exponent obţinut să fie egal cu cel mai mare dintre cei doi
exponenţi.
• Înmulţirea se face înmulţind mantisele şi adunând exponenţii.
• Din cauza restricţiilor privind lungimea mantisei, aritmetica
virgulei mobile diferă de aritmetica obişnuită. 20
Reprezentarea informaţiei în calculator
Reprezentarea numerelor reale
2) Reprezentarea în virgulă mobilă
• Din cauza restricţiilor privind lungimea mantisei, aritmetica
virgulei mobile diferă de aritmetica obişnuită.
• Presupunem că mantisei i se rezervă 4 cifre zecimale.
Considerăm exemplele:
a) 0.6532 ∗ 104 + 0.21 ∗ 103 = 0.6532 ∗ 104 + 0.0210 ∗ 104 =
0.6742 ∗ 104 (nu se pierde nicio cifră)
b) 0.6532 ∗ 104 + 0.1234 ∗ 10 = 0.6532 ∗ 104 + 0.0001234 ∗
104 = 0.6532 ∗ 104 + 0.0001 ∗ 104 (se pierd ultimele 3 cifre
ale nr. 0.0001234)
c) 0.6532 ∗ 104 ∗ 0.21 ∗ 10−1 = 0.137172 ∗ 103 = 0.1371 ∗
103 (se pierd ultimele 2 cifre ale nr. 0.137172)
21
Reprezentarea informaţiei în calculator
Reprezentarea numerelor reale

2) Reprezentarea în virgulă mobilă


• În programele în care calculele au un grad ridicat de
complexitate, erorile se pot propaga, iar efectul este
obţinerea unui rezultat afectat de erori.
• Acest efect nedorit se poate contracara prin utilizarea unor
metode numerice speciale, care inhibă propagarea erorilor.

22
Reprezentarea informaţiei în calculator
Reprezentarea numerelor reale

2) Reprezentarea în virgulă mobilă


• Reprezentarea în virgulă mobilă se poate face sub două
forme:
a) reprezentarea în virgulă mobilă simplă precizie
b) reprezentarea în virgulă mobilă dublă precizie.

23
Reprezentarea informaţiei în calculator
Reprezentarea numerelor reale
a) Reprezentarea în virgulă mobilă simplă precizie se face pe
32 de biţi şi are structura:

• S - semnul numărului reprezentat, ocupă un bit (bitul 32),


iar valorile sale au semnificaţia următoare:
• S = 0 când numărul reprezentat are semnul negativ;
• S = 1 când numărul reprezentat are semnul pozitiv.

24
Reprezentarea informaţiei în calculator
Reprezentarea numerelor reale
a) Reprezentarea în virgulă mobilă simplă precizie

• Caracteristica c ocupă 8 biţi (biţii 24-31) şi conţine valoarea


exponentului la care se adaugă valoarea 127, adică:
c = e +127
• Avantaj:
economisirea unui bit care ar fi necesar pentru
memorarea semnului exponentului.
• Zona de 8 biţi destinată caracteristicii este considerată
mereu pozitivă, prin urmare: 25

0 ≤ 𝑐 ≤ 28 − 1 = 255
Reprezentarea informaţiei în calculator
Reprezentarea numerelor reale
a) Reprezentarea în virgulă mobilă simplă precizie

• Din acest motiv, valorile minime și maxime ale exponentului


sunt -127, respectiv 128, adică.
• Fracţia (f) este reprezentată în zona biţilor 1-23.
• Alinierea se face la stânga, iar dacă este cazul, spaţiile
libere se completează cu cifra zero.

26
Reprezentarea informaţiei în calculator
Reprezentarea numerelor reale
b) Reprezentarea în virgulă mobilă dublă precizie – se face pe
64 de biți și are structura:

• Câmpurile din structură au aceeaşi semnificaţie ca la


reprezentarea în virgulă mobilă simplă precizie.
• Diferă doar lungimea caracteristicii (11 biţi) şi a fracţiei (52
biţi).
• Relaţia dintre exponentul e şi caracteristica c este:
c = e +1023
• Iar c are drept limite de reprezentare:
0 ≤ 𝑐 ≤ 211 − 1 = 2047
27
Reprezentarea informaţiei în calculator
Reprezentarea numerelor reale
b) Reprezentarea în virgulă mobilă dublă precizie
• Valorile minime şi maxime ale exponentului sunt –1023 şi
1024, ceea ce arată o putere de reprezentare deosebit de
mare în cazul folosirii virgulei mobile în dublă precizie.

❖Floating point numbers:


https://www.youtube.com/watch?v=PZRI1IfStY0

28
Reprezentarea informaţiei în calculator
Reprezentarea caracterelor alfanumerice
• Calculatoarele prelucrează atât informaţie numerică, cât şi
informaţie nenumerică (texte).
• Pentru reprezentarea informaţiei numerice se folosesc
algoritmii şi convenţiile prezentate.
• Reprezentarea informaţiei nenumerice:
• litere mari şi mici,
• cifre zecimale,
• semne de punctuaţie,
• operatori aritmetici şi logici,
• simboluri pentru controlul comunicaţiei şi editare etc.
se face pe baza unor coduri.
• Aceste coduri asociază fiecărui semn utilizat o configuraţie
binară. 29
Reprezentarea informaţiei în calculator
Reprezentarea caracterelor alfanumerice
• Pentru o mulţime de
𝑚 semne sunt necesare 2𝑛 configuraţii
binare, unde 𝑛 este cel mai mic număr natural cu
proprietatea 2𝑛 ≥ 𝑚 .
• De exemplu, fiecare element al unei mulţimi de 30 de semne
poate fi codificat utilizând una din cele 25 = 32 configuraţii
binare distincte, cu lungimea de la 5 biţi. Se observă că
două din cele 32 configuraţii binare posibile nu sunt folosite
(sunt cuvinte fără sens).
• Convenţia de reprezentare a caracterelor alfanumerice, în
calculatoarele moderne este codul ASCII (American Standard
Code for Information Interchange).
30
Reprezentarea informaţiei în calculator
Reprezentarea caracterelor alfanumerice
•O configuraţie binară din codul ASCII are 8 biţi (se pot
codifica 28 = 256 semne).
• Plajele de reprezentare sunt următoarele:
• 0 – 31: codificarea caracterelor de control.
• 32 – 127: codificarea literelor mari şi mici, a cifrelor
zecimale şi a semnelor speciale.
• 128 – 255: codificarea semnelor cu utilizare specială.

31
Reprezentarea informaţiei în calculator
Reprezentarea caracterelor alfanumerice

Codurile ASCII Caracterele


0 – 31 Coduri de control
32 – 47 Caractere speciale de pe tastatură
4 8 – 5 7 C i f r e l e a r a b e d e l a 0 l a 9

5 8 – 6 4 C a r a c t e r e s p e c i a l e d e p e t a s t a t u r ă

6 5 – 9 0 L i t e r e l e m a r i a l e a l f a b e t u l u i l a t i n

9 1 – 9 6 C a r a c t e r e s p e c i a l e d e p e t a s t a t u r ă

9 7 – 1 2 2 L i t e r e l e m i c i a l e a l f a b e t u l u i l a t i n

1 2 3 – 1 2 7 C a r a c t e r e s p e c i a l e d e p e t a s t a t u r ă

1 2 8 – 2 5 5 C a r a c t e r e g r a f i c e

32
Reprezentarea informaţiei în calculator
Reprezentarea caracterelor alfanumerice

33
Reprezentarea informaţiei în calculator
Reprezentarea caracterelor alfanumerice

• Există şi alte coduri folosite în sistemele de calcul, de


exemplu, codul EBCDIC (Extended Binary Coded Decimal
Interchange Code).

34

S-ar putea să vă placă și