Sunteți pe pagina 1din 11

24 Programarea calculatoarelor

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: B2={0,1}
ZECIMAL BINAR OCTAL HEHAZECIMAL (16)
(10) (2) (8)
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 examinând separat partea
întreaga si partea fractionala si apoi concatenând 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:
n
(1)
N (α ) = ∑ a i ⋅ β
i

i =0

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


N (α ) n−1 a
= ∑ a i+1β i + 0 (2)
β β
1i=40 2 43
N1 (α )

a0 este restul împartirii N(a) lui la β.


În continuare
N1 (α ) n− 2 a
= ∑ a i+ 2 β i + 1
β β
1i=40 2 43
N 2 (α ) (3)
a1 este restul împartiri lui N1(α) la β.
Algoritmul se continua astfel încât un pas k, prin efectuarea împartiri câtului
precedent la β:
N k (α ) n− k a (4)
= ∑ ai+ k β i + k
β β
1i=40 2 43
Nk (α )

se obtine o cifra ak.


Algoritmul se încheie în momentul în care câtul obtinut este zero. Ultimul rest
este cifra cea mai semnificativa a reprezentarii în baza β.
Exemplu:
13(10) = ?(2) 13
1
2
6 2
0 3 2
1 1 2
1 0

13 (10 ) = 1101 (2 )
26 Programarea calculatoarelor

Fie M1(α)subunitar. Conversia în baza β se reduce la determinarea


coeficientilor b-i ai polinomului:
(5)
m
M 1 (α ) = ∑ b−i β
−i

i =1
Coeficienti b-i , i=1,m se obtin prin înmultirea succesiva a numarului
mM1(α),cu noua sa baza β. La primul pas:
m−1
M 1 (α )β = b−1 + ∑ b− i−1β − i
1i=14 2 4 3 (6)
M 2 (α )

Partea întreaga se va reprezenta prima cifra, cea mai reprezentativa a


rezultatului: b-1.În continuare M2(α) se va înmulti din nou cu β.
(7)
m −2
M 2 (α )β = b− 2 + ∑ b− i− 2 β
−i

i =1

Partea întreaga reprezentând cifra urmatoare, b-2. Algoritmul continua astfel


încât la un pas oarecare k:
m− k (8)
M k (α )β = b−k + ∑ b−i −k β
−i

i =1
obtinându-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.
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 formând grupe de câte n cifre din baza α, pornind de
la punctul zecimal spre stânga pentru partea întreaga si de la punctul zecimal
spre dreapta pentru parte subunitara, punând î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


28 Programarea calculatoarelor

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 stânga 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 restrâns
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 încât 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,
30 Programarea calculatoarelor

- 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
obtinându-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
32 Programarea calculatoarelor

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, luând
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
34 Programarea calculatoarelor

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.

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