Sunteți pe pagina 1din 33

Bazele Tehnologiei Informaţiei

Curs 5
Bazele numerice ale calculatoarelor
Sistem de numeraţie = totalitatea regulilor de reprezentare a
numerelor cu ajutorul unor simboluri (cifre).
Numărul de simboluri permise s.n. baza (rădăcina) sistemului
de numeraţie
Sistemele de numeraţie pot fi:
 poziţionale

 nepoziţionale
Sistemul roman
I X C M V L D
1 10 100 1000 5 50 500
Bazele numerice ale calculatoarelor
Atunci când un simbol cu o valoare mai mică este poziţionat după un simbol
cu o valoare mai mare, valorile simbolurilor se adună.
Bazele numerice ale calculatoarelor

Atunci când un simbol cu o valoare mai mică este poziţionat


înainte de un simbol cu o valoare mai mare, valoarea mai mică
se scade din cealaltă.
Reprezentarea într-o bază oarecare a
unui număr întreg
 Reprezentarea unui număr întreg

N  an an1 a0
N  an  b n  an 1  b n 1    a0  b 0

Este reprezentarea numărului întreg N în baza b. Cifrele


numărului N au următoarea proprietate:
0  ai  b 1, i  0, n
Reprezentarea într-o bază oarecare a
unui număr real

 Reprezentarea unui număr real R

R  an an1 a0a1 am


R  an  b n  an 1  b n 1    a0  b 0  a1  b 1    a m  b  m

Este reprezentarea numărului real R în baza b. Cifrele numărului


R au următoarea proprietate:
0  ai  b  1, i   m, n
nu exist ă k astfel încât ak  ak 1  ak 2    b  1
Conversia bazei de numeratie

 Conversia bazei de numeraţie (partea


întreagă, partea fracţionară)
 Conversia rapidă între baze între care
există relaţia:

b1  b2p , p 
Reprezentarea numerelor în virgula fixă

Numerele pozitive au aceiași reprezentare în CD, CI


și CC. Regulile de reprezentare ce urmează sunt
valabile pentru numerele negative.
Reprezentarea în virgulă fixă
 cod direct (CD)
 cod invers (CI)
 cod complementar (CC)
Reprezentarea numerelor în cod direct
(CD)
CD n 1
R  an  2 n   i
a
i m
 2 i

0 , dacă R  0
an  
1, dacă R  0
an  bit de semn
Se transformă numărul în baza 2 și se adaugă bitul de semn.
Dacă reprezentarea numărului în baza 2 are un număr de biți
mai mic decât cel solicitat în reprezentare se adugă suplimentar
0-uri.
Reprezentarea numerelor în cod invers
(CI)
 n 1

CI 

0  2 n
 
i  m
a i  2 i
, dacă R  0
R  n 1
1  2 n 
 
i  m
a i  2i , dacă R  0

a i  1  ai , i   m, n  1, unde a i sunt cifrele binare ale lui R în


cod direct
Modalitate de calcul :
CI
R  2 n 1  R CD  2 m
Numărul în CI se obține prin inversarea cifrelor binare
(inclusiv bitul de semn) din reprezentarea în CD a numărului
în valoare absolută.
Reprezentarea numerelor în cod
complementar (CC)
 n 1

 0  2   ai  2i , dacă R  0
n
CC
 i  m
R  n 1
1  2 

n

i  m
a i  2 i
, dacă R  0
n 1 n 1

 ai  2 
i  m
i
 a i
i  m
 2 i
 2 m
, unde a i  a i - 1 şi a i sunt cifrele binare ale

lui R în cod direct

Modalitate de calcul :
CC
R  2 n 1  R CD

Numărul în CC se obține prin adunarea cifrei 1 la CMPSB a


reprezentării numărului în CI.
Lungimea, precizia şi domeniul
datelor în virgulă fixă
Reprezentarea numerelor în format
BCD

BCD (Binary Coded Decimal) – zecimal codificat binar


Format:
• împachetat (packed BCD)
• despachetat (unpacked BCD)
În format împachetat se reprezintă 2 cifre zecimale pe un octet (cifra
CMPS pe biţii 0-3 şi cifra zecimală CMS pe biţii 4-7):
96 = 1 0 0 1 0 1 1 0
7 43 0
În format despachetat se reprezintă o cifră zecimală pe un octet
memorată pe biţii 0-3, iar biţii 4-7 conţin informaţia Fh:
6= 11110110
7 43 0
Reprezentarea numerelor în format
BCD la Intel

Tipul Lungime Precizie Domeniul de valori


(zecimal)

BCD 80 18 (cifre (-1018+1) – (1018-1)


împachetat zecimale)

S x D17 D16 D15 D1 D0

79 78 72 71
0
Adunarea numerelor în BCD

Reguli de calcul
 Se exprimă fiecare cifră zecimală printr-o tetradă
binară. Se adună poziţie cu poziţie de la dreapta la
stânga.
 Dacă rezultatul operaţiei pe o tetradă (r) îndeplineşte
condiţia 1010≤ r ≤1111 sau se realizează transport la
următoarea tetradă, rezultatul obţinut va fi corectat cu
valoarea 0110.
 Dacă rezultatul operaţiei pe o tetradă (r) îndeplineşte
condiţia 0000≤ r ≤ 1001 rezultatul obţinut se menţine.
Scăderea numerelor în BCD

Reguli de calcul
 Se exprimă fiecare cifră zecimală printr-o tetradă
binară. Se scade poziţie cu poziţie de la dreapta la
stânga.
 Dacă rezultatul operaţiei pe o tetradă (r) îndeplineşte
condiţia 1010≤ r ≤1111 sau se realizează transport la
următoarea tetradă, rezultatul obţinut va fi corectat cu
valoarea 0110.
 Dacă rezultatul operaţiei pe o tetradă (r) îndeplineşte
condiţia 0000≤ r ≤ 1001 rezultatul obţinut se menţine.
Reprezentarea în virgulă mobilă
 Utilizată pentru reprezentarea numerelor reale.
 Standardul internaţional IEEE (Institute of Electrical
and Electronics Engineers) 754 –1985
 În majoritatea cazurilor, numerele sunt reprezentate în
formă normalizată (cu excepţia lui zero).
Tipuri de date reale

22-Feb-20
Tipuri de date reale

Format real extins

S CAR Fracţie
79 78 64 63 62 0
CAR = exp + 16383
întreg

Dacă notăm cu n numărul de biţi alocaţi caracteristicii, atunci


putem utiliza formula:

CAR = exp + 2n-1 - 1


Lungimea, precizia şi domeniul datelor reale

Tipul Lungime Precizie Domeniul de Domeniul de valori


valori (binar) (zecimal)
Simpla 32 24 2-126 - 2127 1.18*10-38 ÷ 3.40*1038
precizie
Dubla 64 53 2-1022 - 21023 2.23*10-308 ÷ 1.79*10308
precizie

Real 80 64 2-16382 - 216383 3.37*10-4932 ÷ 1.18*104932


extins
Exemple

1. Ce valoare are numărul (în format VM simplă precizie)


reprezentat astfel:
1 10000001 01000000000000000000000

Caracteristica este 129, deci exponentul real este 129 – 127


=2
Partea fracţionară este .012 = .25, deci vom avea valoarea
1,25.
Numărul este negativ (bitul de semn este 1)
Rezultatul: -1,25 x 22 = -5
Exemple

2. Care este reprezentarea numărului 16.625 în format VM


simplă precizie?
Aducem numărul în forma normalizată:
16 = 100002
.625 = .1012
16,625 = 10000,101= 1,0000101 * 24

CAR = 4 + 127 = 131

În concluzie, reprezentarea este:


0 10000011 00001010000000000000000
22-Feb-20
Numere şi valori speciale
 Zerouri cu semn – valoarea 0 poate fi reprezentată ca +0 sau –0
în funcţie de bitul de semn. Ambele reprezentări sunt egale ca
valoare. Semnul unui rezultat cu valoare 0 depinde de operaţia
efectuată şi de modalitatea de rotunjire.
 Numere finite normalizate şi denormalizate.( Verificați Floarea
Nastase, Razvan Zota, Bazele tehnologiei informatiei, Editura
ASE, Bucuresti, 2005 pg. 100-103)
 +, - reprezintă valoarea maximă pozitivă, respectiv negativă
pentru numere reale ce poate fi reprezentată în virgulă mobilă.
Valoarea infinit este totdeauna reprezentată de o fracţie 0 şi de
exponentul maxim permis de formatul respectiv (de ex. 255 în
format simplă precizie). Sunt generate excepţii atunci când
utilizarea unei valori infinite ca operand sursă conduce la o
operaţie invalidă.
 Valori NaN (Not a Number) – nu fac parte din mulţimea
numerelor reale. Reprezentarea lor se face prin intermediul unui
exponent maxim acceptat şi a unei fracţii non-zero. Bitul de
semn este ignorat.
Numere normalizate si denormalizate

 Numerele diferite de zero finite. Numerele normalizate reprezintă numerele


ce pot fi codificate într-o formă normalizată între 0 şi . Acest grup include
toate numerele cu exponenţi modificaţi între 1 şi 254 (între –126 şi 127)
 Atunci când exponentul modificat este 0, numerele mai mici pot fi
reprezentate făcând bitul părţii întregi zero. Numerele din acest domeniu se
numesc numere denormalizate. Acest lucru duce la scăderea preciziei
(numărul de biţi semnificativi ai fracţiei este redus datorită apariţiei
zerourilor de la început).
 În momentul normalizării calculelor în virgulă mobilă, unitatea în virgulă
mobilă operează cu numere normalizate şi produce rezultate normalizate.
Numerele denormalizate reprezintă o condiţie de underflow. Un număr
denormalizat este calculat prin intermediul unei tehnici denumită gradual
underflow. (Verificați
http://www.utgjiu.ro/math/mbuneci/book/mn2007/c04.pdf)
Valori NaN
 Standardul IEEE defineşte două clase de NaN:
 QNaN (quiet NaN) – are bitul CMS setat
 SNaN (signaling NaN) – are bitul CMS zero.
 Valorile QNaN se propagă prin operaţiile aritmetice fără a
indica o excepţie
 Valorile SNaN semnalizează în general o excepţie (operaţie
invalidă) atunci când apar ca operanzi în operaţii aritmetice
Operaţii speciale

Operaţia Rezultat

n / ± 0
±*± ±
±Val.nonzero / 0 ±
+ 
±0 / ±0 NaN
- NaN
±/± NaN

±*0 NaN
Bibliografie

 Floarea Nastase, Razvan Zota, Bazele tehnologiei informatiei, Editura ASE,


Bucuresti, 2005, paginile 79-123.
 Iuliana Dorobat, Bazele tehnologiei informatiei aplicatii, Editura ASE,
Bucuresti, 2018.
 IEEE 754_2008 standard virgula mobila, disponibil pe online.ase.ro
 http://www.utgjiu.ro/math/mbuneci/book/mn2007/c04.pdf

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