Sunteți pe pagina 1din 11

Programarea calculatoarelor 24

2. Reprezentarea informatiei in calculator



2.1. Sisteme de numeratie

Definitie.
Un sistem de numeratie ( SN ) este reprezentat prin totalitatea
regulilor de reprezentare a numerelor cu ajutorul unor simboluri numite cifre.
Definitie.
Cifra este un simbol care reprezinta o parte ntreaga.
Definitie.
Baza SN este numarul de simboluri diferite permise pentru
reprezentarea numerelor.
Exemplu: B
2
={0,1}
ZECIMAL
(10)
BINAR
(2)
OCTAL
(8)
HEHAZECIMAL (16)
0 0000 0 0
1 0001 1 1
2 0010 2 2
3 0011 3 3
4 0100 4 4
5 0101 5 5
6 0110 6 6
7 0111 7 7
8 1000 10 8
9 1001 11 9
10 1010 12 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F
16 10000 20 10
17 10001 21 10
18 10010 22 12
Reprezentarea informatiei n calculator

25

Conversia unui numar din baza n baza se face examinnd separat partea
ntreaga si partea fractionala si apoi concatennd rezultatele. Fie un numar
ntreg N() scris n baza . Conversia din baza consta n determinarea
coeficientilor an, an+3........a1, a0 ai polinomului n B:
(1)

Coeficienti ai se obtin prin mpartirea succesiva a lui N() cu astfel:

(2)

a0 este restul mpartirii N(a) lui la .
n continuare


(3)
a1 este restul mpartiri lui N1() la .
Algoritmul se continua astfel nct un pas k, prin efectuarea mpartiri ctului
precedent la :
(4)



se obtine o cifra ak.
Algoritmul se ncheie n momentul n care ctul obtinut este zero. Ultimul rest
este cifra cea mai semnificativa a reprezentarii n baza .
Exemplu:





i
n
i
i
a N

=0
) (
( )
( )

0
1
0
1
1
a
a
N
N
n
i
i
i
+ =

=
+
43 4 2 1
( )
( )

1
2
2
0
2
1
a
a
N
N
n
i
i
i
+ =

=
+
43 4 2 1
( )
( )

k
Nk
k n
i
i
k i
k
a
a
N
+ =

=
+
43 4 2 1
0
( ) ( ) 2 10
? 13 =
13 2
1 6 2
0 3 2
1 1 2
1 0
( ) ( ) 2 10
1101 13 =
Programarea calculatoarelor 26

Fie M1()subunitar. Conversia n baza se reduce la determinarea
coeficientilor b-i ai polinomului:
(5)


Coeficienti b-i , i=1,m se obtin prin nmultirea succesiva a numarului
mM1(),cu noua sa baza . La primul pas:

(6)

Partea ntreaga se va reprezenta prima cifra, cea mai reprezentativa a
rezultatului: b-1.n continuare M2() se va nmulti din nou cu .
(7)



Partea ntreaga reprezentnd cifra urmatoare, b-2. Algoritmul continua astfel
nct la un pas oarecare k:
(8)

obtinndu-se cifra b-k.
Algoritmul se opreste n momentul n care partea fractionara este zero, sau
daca s-a atins precizia ceruta la conversie.
0.35(10)=?(2) pe 8 biti.









( )
i
m
i
i
b M

=

=
1
1
( )
( )
43 4 2 1


2
1
1
1 1 1
M
m
i
i
i
b b M


+ =
( )
i
m
i
i
b b M

=

+ =
2
1
2 2 2
( )
i
k m
i
k i k k
b b M

=

+ =
1
Reprezentarea informatiei n calculator

27



0. 35
2
0. 70
2
1 4

0 8
2
1 6
2
1 2
2
0 4
2
0 8
2
1 6
=>0.35=0.01.01.10.01.
Observatie: Pentru conversia unui numar din baza n baza =n,
conversia se poate face formnd grupe de cte n cifre din baza , pornind de
la punctul zecimal spre stnga pentru partea ntreaga si de la punctul zecimal
spre dreapta pentru parte subunitara, punnd n locul fiecarui grup de n cifre
cifre corespunzatoare din baza .
Exemplu:1.1010.01011001 (2)=1A.59h
Daca se realizeaza conversia din baza n baza , cu =n atunci se
nlocuieste fiecare cifra a numarului initial printr-un grup de n cifre
corespunzatoare din baza .
Exemplu: 1A.59h=0001 1010.0101 1001



2.2. Reprezentarea numerelor
Programarea calculatoarelor 28

Datele de intrare pentru un program si / sau rezultatele pot fi numere ntregi sau
reale, pozitive sau negative. Aceste numere sunt preluate de UI convertite din
forma de reprezentare externa ntr-o forma interna. UE converteste rezultatele
numerice din forma de reprezentare interna n forma externa, accesibila
utilizatorului. n forma externa, numerele se reprezinta de regula n zecimal.
Intern n calculator numerele se reprezinta binar, printr-o secventa de biti 0 si 1
pe baza unor regulii de reprezentare.

2.2.1. Modalitati de reprezentare a numerelor n
calculator

Modul de reprezentare a numerelor constituie o problema importanta
n proiectarea unui calculator, deoarece aceasta determina complexitatea
UAL, domeniul valorilor permise si precizia calculelor.
Pentru reprezentarea numerelor n calculator se folosesc doua moduri
de reprezentare:
- formatul virgula fixa ; ( VF)
- formatul virgula mobila. ( VM)
Reprezentarea n format VF se caracterizeaza prin aceea ca numarul de cifre
de la dreapta virgulei, pozitia virgulei si numarul de cifre de la stnga virgulei
sunt fixe. Virgula nu se reprezinta.
Exemplu:
S
- numere ntregi (forma cea mai utilizata);


- numere subunitare

- numere fractionare
Principalul dezavantaj la reprezentarea n VF este domeniul de valori restrns
fata de situatiile reale de calcul.
n formatul VM numerele se reprezinta astfel: be x m, unde:
- b: este baza de reprezentare;
- e: indica ordinul de marime a numarului.
Reprezentarea informatiei n calculator

29
- m: mantisa arata marimea exacta a numarului ntr-un anumit domeniu.
Numarul de cifre al mantisei da precizia reprezentarii.
Pentru ca ntr-o reprezentare sa nu trebuiasca a fi memorat numarul de cifre al
partii fractionale, s-a impus conditia de normalizare a mantisei .
Conform acestei conditii numarul se exprima n asa fel nct mantisa sa fie
subunitara, cu prima cifra dupa virgula nenula.
Pentru reprezentarea n calculator a numerelor ntregi, se utilizeaza urmatoarele
coduri:
a) codul binar ponderat pentru numere fara semn. Numarul se reprezinta prin
valoarea sa pe toti cei n biti ai reprezentarii, domeniul de valori fiind :

D = [0,2n - 1]
Exemplu: n=16 D=[0,65535] inclus in Z;
n=32 D=[0,232 - 1] inclus in Z .
b) codul " complement " fata de 1"
Pentru numere pozitive reprezentarea este:
S
0 Nr.


Pentru numerele negative, S=1,ceilalti biti servind pentru negarea valori
absolute a numarului .Negarea se realizeaza la nivel de bit: bitii 0 devin 1 si bitii
1 devin 0.

Exemplu: N = -5 pe 8 biti este l 1.l111010
Matematic , C1 al unui numar negativ N care se reprezinta pe n biti
este:
C1(N)=2n-1-V , V = lNl
c) codul complement fata de 2
Pentru numere pozitive reprezntarea este de :

0 Nr.

Pentru numere negative se aplica urmatoarea regula de complemetare:
- se reprezinta numarul n valoarea absoluta,
Programarea calculatoarelor 30
- se face C1 al valori absolute la care se aduna 1.
Exemplu: C2 al N= -5 pentru n=8 este: 11111011
Matematic, C2 al unui numar negativ N este C2(N)=2n-V n=dimensiunea
reprezentarii
V=lNl
Domeniul de valori este :
D=[-2n-1,2n-1-1] inclus n Z.

Exemplu: n=16 D=[-32368,32367] inclus n Z
n=32 D=[-231,231-1] inclus n Z

Exemplu: 3.45 = 101 x 0.345 rezulta e = 1, m = 0.345

Dezavantajul VM fata de VF l constituie complexitatea dispozitivelor
care efectueaza operatii aritmetice cu astfel de numere.
Exemplu: 80x87 coprocesor matematic. Avantajul major l
constituie domeniul larg de valori si precizia mult mai buna.
Pentru ca exponentul sa nu fie negativ se aduna exponentului o cantitate fixa
obtinndu-se asa numita caracteristica .
C = e + valoarea
Exemplu : la IBM-PC simpla precizie este:
31 30 23 22 0
S C M

unde: n=2e x m'
c=e + 128 ( 8 biti )
m=m'din care lipseste primul bit de dupa virgula
( este ntotdeauna 1 ) ( 23 cifre )

V mantisa min. = 0.1..........0
V mantisa max.= 0.11........1
V min.= 0.100 x 2-127 = 2.9837 x 10-39
V max.= 0.111 x 2127 = 1.7014 x 1036
Nr. Mantisa = 223 = 8388608 = 8.4 x 106
- precizia n zecimal este de sase cifre.
Reprezentarea informatiei n calculator

31

S = 0 - numere pozitive
S = 1 - numere negative
sau:
63 62 55 54 0
S C m
- dubla precizie.
Valorile externe reprezentate sunt:
///////I I/////////./////////I I///////

unde: V min. = 0.100.......0(2) x 2-127
V max.= 0.111.....1 (2) x 2127
Precizia reprezentarii este cea de sase cifre zecimale ( simpla precizie),
respectiv 16 cifre zecimale ( dubla precizie ).
Observatii:
- n urma calculului se pot obtine rezultate care depasesc domeniul admis.
- Numerelor reprezentate n virgula mobila se aplica algebra cu
numere cu precizie finita, algebra n care legile de asociativitate si
distributivitate nu sunt respectate.

2.2.2. Reprezentarea cifrelor zecimale n BCD
( Binary Coded Decimal )

Cifrele binare de la 0 la 9 sunt reprezentate prin valori binare echivalente pe 4
biti conform tabelului urmator:

cifra | cod BCD
----------------------------------
0 | 0000
1 | 0001
2 | 0010
3 | 0011
4 | 0100
5 | 0101
6 | 0110
Programarea calculatoarelor 32
7 | 0111
8 | 1000
9 | 1001
n reprezentarea unui numar zecimal fiecare cifra se reprezinta separat conform
tabelului.
Exemplu: 78(10) = 0111 1000 ( BCD)
n cod binar: 78(10) = 00101110
Avantajul acestei codificari este corespondenta ntre cifra zecimala si valoare.
Pentru sistemele cu dispozitive care utilizeaza numere n cod BCD este
necesara o operatie de conversie binar - BCD.

2.3. Reprezentarea informatiei nenumerice

Informatia prelucrata de calculator nu se rezuma numai la numere ntregi si
reale, exista si alte tipuri de informatii ce pot fi memorate si prelucrate n
calculator: text, adrese de memorie, informatii de stare, instructiuni n cod
masina etc.

2.3.1. Reprezentarea textului

Textul format din caractere este una din formele cele mai utilizate
pentru memorarea si manevrarea informatiei.
Setul caracterelor ce trebuie reprezentate n calculator include: literele
din alfabet ( A la Z, a la z ), cifrele zecimale ( 0 la 9 ) si semne speciale ( - , + ,
: , ~ , ! , @ , # , $ , % , & , * , " )
n afara acestor caractere tiparibile mai exista si caractere netiparibile ( ex.:
CR ). Codul universal acceptat pentru reprezentarea informatiei text este codul
ASCII ( American, Standard Code for Information Interchange ) .Codul
ASCII este un cod pe 7 biti deci adunate 128 caractere.
Primele 32 de coduri sunt coduri de control ( netiparibile ).
Exemplu:
- caractere de control pentru comunicarea cu dispozitivele.
1 - SOH ( Start of Header )
2. - STX ( Start of Text )
3. - ETX ( End of Text )
Reprezentarea informatiei n calculator

33
4. - EOT ( End of Transmision )
- Caractere de control pentru deplasarea cursorului.
8. - BS ( Back Space )
9. - HT ( Horizontal Tabulation )
10. - LF ( Line Feed )
11. - VT ( Vertical Tabulation )
12. - FF ( Farm Feed )
13. - CR ( Carriage Return )
14.- ESC ( Escape ) = 27(10) ( 1Bh).
Caracterele, cifre zecimale ( 0 la 9 ) au codurile ntre 48 si 57 ( 30h -
39h ).
Caracterele, literele mari ( A - Z ) au codurile ntre 41h-5Ah, iar literele mici
(a-z) ntre 61h-7Ah.
Memorarea codului unui caracter se face pe un octet. Deoarece la
reprezentare se folosesc doar 7 biti ,la 8-lea bit (cel mai semnificativ) este
liber .
Asupra sirurilor de caractere se pot face pot face operatii ca: comparare,
cautarea a unei anumite segvente, concatenare, etc.
La IBM-PC se utilizeaza codul ASCII extins pe 8-biti. La acest cod
toate cele 256 de valori sunt tiparibile. Primele 32 de coduri ( 0 - 31 ) si
codurile 128 - 255 sunt folosite pentru codificarea unor caractere speciale (
semigrafice, din alte alfabete, din matematica ). Codurile ntre 32 si 127 au
aceeasi semnificatie ca la codul ASCII standard.

2.3.2 Alte reprezentari

n afara numerelor si a textelor n calculator se reprezinta si alte tipuri de date.
Rezultatul unui test sau comparatii. (Ex.: a < b) este o informatie logica, lund
valorile adevarat ( True ) sau fals ( False ). Desi pentru reprezentarea valorilor
logice ar fi suficient un singur bit se foloseste un octet ( ooh - False, OFFh -
True ).
Informatia din calculator este memorata n locatie de memorie, locatii care se
identifica prin adrese. Adresele de memorie, care si ele formeaza un tip de
informatie ce poate fi utilizata n aplicatii, sunt numere ntregi fara semn. Pentru
Programarea calculatoarelor 34
o adresa de memorie de capacitate 2n locatii sunt necesare n biti pentru
codificarea adresei .
Instructiunile n cod masina constituie o alta categorie de informatie ce se
reprezinta n memoria calculatorului. O instructiune n cod masina se reprezinta
printr-o secventa de biti 0 si 1, pe unul sau mai multe cuvinte de memorie.
n concluzie toate informatiile se afla n memoria calculatorului se reprezinta
prin segvente de biti 0 - 1.Fiecarei segvente i se asociaza un nteles n functie
de context.