Calculatorul prelucreaza date.Reprezentarea interna a datelor se face diferentiat,in
functie de tipul datei.Tipul datei este un atribut al datei si defineste apartenenta
datei la o anumita clasa de date,careia ii corespunde un anumit model de reprezentare
interna(in calculator). s4e8ef
Cum se reprezinta datele alfanumerice?
Individual,fiecare caracter(litera,cifra,spatiu sau caracter special-cum ar
fi parantezele si semnele de punctuatie) va fi codificat intr-o secventa de
lungime fixa de 8 cifre binare,folosind codul standardizat ASCIL.El permite
construirea a 28=256 cuvinte de cod diferite intre ele.Fiecarui caracter de
la tastatura ii este atribuita o secventa de cod ASCIL prin care poate fi reprezentat
in memoria calculatorului.Astfel caracterul A va fi reprezentat prin secventa
de 8 cifre binare:01000001,iar caracterul 9 prin secventa de 8 cifre binare:001110011.
Asupra datelor de tip alfanumeric pot actiona operatorii:
ade concatenare(din doua siruri de caractere se obtine un singur sir):”buna”+”ziua!”=
”buna ziua”
ade comparare(comparatia se executa prin compararea secventelor de cod
ASCIL,deci prin compararea a doua numere): “a”>”A”sau”a”>”9”as-a
folosit conventia prin care se delimiteaza un sir de caractere cu apostrofuri(“sir
de caractere”) pentru a deosebi o data de tip alfanumeric de un identificator
de data sau,in cazul numerelor,pentru a face deosebire intre reprezentarea numarului
printr-o data de tip alfanumeric sau printr-o data de tip numeric.
Cum se reprezinta numerele?
Reprezentarea interna a datelor numerice se face diferentiat,in functie de tipul
lor:numere intregi(cu semn sau fara semn)si numere reale.
Asupra datelor de tip numeric pot actiona operatorii:
aaritmetici(prin care se pot executa operatii aritmetice:+,-,*,/):9/3
+ 6*2 -; 4
ade comparare(>,<,=,#,>=,<=):8>2,4<16,5=5
Cum se reprezinta numerele intregi?
Fiecare numar intreg,pozitiv sau negativ,este codificat cu un numar binar de
lungime fixa.Lungimea secventei binare trebuie sa fie multiplu de 8 biti:8 biti,16
biti,32 biti… .Pentru fiecare numar,indiferent de marimea numarului,sunt
folosite secvente de biti de aceeasi lungime.Pentru a obtine acelasi numar de
biti sunt adaugate zerouri nesemnificative.Atunci cand se reprezinta un numar
intreg cu semn primul bit din stanga reprezentarii numarului va fi folosit pentru
precizarea semnului,astfel:1-numar negativ si 0-numar pozitiv
De exemplu,daca se citeste un numar intreg fara semn(numarul 9)folosind un spatiu
de memorie de 16 biti,atunci reprezentarea numarului va fi:
9(10)=1001(2)
0000 0000 0000 1001 biti nesemnificativi/reprezenatrea in binar a numarului 9
Cu cei 16 biti,numarul cel mai mare care se poate reprezentac este:
1111 1111 1111 1111
16 cifre binare
Acest numar este 216-1 = 65 535
Daca reprezentarea se va face folosind doar 8 cifre binare cel mai mare numar
va fi 28-1=255
Deci,domeniul de definitie a unei date de tip numeric intreg fara semn,reprezentata
cu 8 cifre binare(1 octet sau 1 byte) va fi 0…+255 iar pentru cea reprezentata
cu 16 cifre binare(2 octeti sau un cuvant) va fi 0...+65525
Dar daca,de exemplu,pentru a reprezenta un nr intreg cu semn se foloseste un
spatiu de memorare de 32 de biti,atunci reprezenatrea va fi:
apentru numarul 9: 9(10) =1001(2)
0 000 0000 000 0000 0000 0000 0000 1001 bitul biti nesemnifiactivi pentru reprezentarea in de semn completarea reprezentarii binar a numarului 9
apentru numarul -6: 6(10)=101(2)
1 000 0000 0000 0000 0000 0000 0000 0101 bitul biti nesemnifiactivi pentru reprezenatrea in de semn compltarea reprezentarii binar a numarului 9
Daca pentru reprezentarea unui numar intreg cu semn se foloseste un spatiu
de memorare de 32 de cifre binare,pentru reprezenatrea numarului vor fi folositi
efectiv numai 31 de biti.Cel mai mare numar binar care se poate scrie cu 31
cifre binare este
111 1111 1111 1111 1111 1111 1111 1111
31 de cifre binare
Acest numar este 231-1=2 147 483 647
Deci,domeniul de definitie a unei date de tip numeric intreg cu semn,reprezenatata
cu 32 cifre binare,va fi -; 2 147 483 647.. +2 147 483 647
In mod analog se poate calcula domeniul de definitie pentru reprezenatrea unui
numar intreg cu semn pe 8 biti sau pe 16 biti.
Pentru a executa operatia 9+(-6)=3,se va scadea din numarul 9 numarul 6 astfel:
0 000 0000 0000 0000 0000 0000 0000 1001 0 000 0000 0000 0000 0000 0000 0000 0110
----------------------------------------------------- 0 000 0000 0000 0000 0000 0000 0000 0011
Reprezentarea interna a datelor
Acest model de reprezentare interna a datelor numerice intregi cu semn se
numeste reprezentare prin marime si semn . Ea este avantajoasa deoarece este
asemanatoare cu scrierea obisnuita, dar dazavantajoasa din punct de vedere al
modelarii operatiilor matematice cu ajutorul circuitelor electronice:
abitii de semn ai numerelor trebuie tratati separat, aexista doua
reprezentari pentru cifra 0:
0 000 0000 0000 0000 0000 0000 0000 0000,
1 000 0000 0000 0000 0000 0000 0000 0000,
atrebuie definita operatia de scadere a doua numere absolute.
Din aceasta cauza se prefera un alt model de reprezentare interna:reprezentarea
numerelor prin complementul fata de 2 (two’s complement notation).
Complementul unui numar intreg negativ Nn(reprezentat prin n cifre binare)
Fata de 2 este Nn:
Nn=2n -; Nn
Astfel, complementul numarului -6 fata de 2 intr-o reprezentare cu 16 cifre
binare(din care numai 15 se folosesc pentru reprezentarea numarului) se calculeaza
astfel:
2¹ - 000 0000 0000 0101= 1 0000 0000 0000 0000 -;
000 0000 0000 0110=
1111 1111 1111 1010 bitul de semn
complementul numarului fata de 2
In aceasta reprezentare, pentru a executa operatia 9+(-6)=3, se va aduna complementul
fata de 2 al numarului 6 la numarul 9 astfel:
0000 0000 0000 1001+
1 0000 0000 0000 0011
rezultatul operatiei=3
Nu mai exista doua reprezentari pentru cifra o deoarece 1 000 0000 0000 0000
este complementul fata de 2 al numarului -2¹ :1 000 0000 0000 0000.
Deci cu ajutorul a n cifre binare, folosind reprezentarea prin complementul
fata de 2 se pot reprezenta numere intregi N din domeniul:
-2n?¹ = 2n?¹ -1
Folosind aceasta formula de calcul se poate calcula domeniul de definitie
pentru reprezentarea unui numar intreg cu semn pe 8 biti sau pe 16 biti
Domeniul de definitie pentru o data de tip numeric intreg cu semn, reprezentata
in complement fata de 2 si cu 8 cifre binare (1 octet sau 1 byte), va
fi -128...+127, iar pentru cea reprezentata cu 16 cifre binare(2 octeti sau
un cuvant), va fi -65536...+65535.
Numarul intreg 9 nu este codificat in acelasi cu caracterul 9.
Cum se reprezinta numerele reale?
Numerele reale sunt numerele care sunt formate din: semn, parte intreaga
si parte fractionara. Ele pot fi reprezentate in 2 moduri:
· In virgula fixa (binary fixed point)
· In virgula mobila (binary floating point)
Cum se reprezinta numerele in virgula fixa?
In reprezentarea in virgula fixa se presupune ca partea intreaga
este despartita de partea fractionara printr-o virgula imaginara care se gaseste
intr-o pozitie fixa. In acest caz sunt fixe atat numarul de
pozitii ale partii intregi cat si numarul de pozitii ale partii
fractionare. Pozitia virgulei fixe este o caracteristica a tipului de calculator
si a modului in care4 este construit.
De exemplu daca se reprezinta pe 8 biti un numar fractionar cu numarul de pozitii
intregi 5, automat numarul de pozitii zecimale va fi 3. In cazul
in care numarul N care se reprezinta este pozitiv, domeniul de valori
al datei va fi:
00000,000(2)=N=11111,111(2) adica: 0,0(10)=N=31,925(10)
Daca numarul este negativ, se va reprezenta prin complementul fata de 2, primul
bit fiind bitul de semn si domeniul de valori al datei va fi:
11111,11(2)=N=01111,111(2) adica: -16,025(10)=N=5,925(10)
Aceasta reprezentare a numerelor reale nu este avantajoasa deoarece nu permite
decat reprezentarea unei game restranse de numere reale. In
unele calculatoare, pozitia virgulei este plasata la dreapta numarului lucrandu-se
cu numarul real ca si cum ar fi un numar intreg. Pentru a reprezenta adevarata
valoare, in programul care exploateaza numarul respectiv trebuie introdus
un factor de scara. De exemplu numarul 12,34 va fi reprezentat ca un numar intreg:
12,34*102=1234, iar programul va trebui sa actualizeze numarul folosind factorul
de scara 10-2.
Cum se reprezinta numerele in virgula mobila?
In aceasta reprezentare, numerele sunt reprezentate prin exponent si matisa.
Ea se mai numeste notatie stiintifica. Se stie ca orice numar poate fi scris
cu ajutorul puterilor lui 10(exponenti). In acest mod poate fi controlata
pozitia virgulei zecimale, iar reprezentarea obtinuta se numeste in virgula
mobila deoarece virgula zecimala isi schimba pozitia in functie
de valoarea exponentului. De exemplu reprezentarea in notatie stiintifica
este:
12,5=12,5*100=0,125*102=125*10-1=125E-1 mantisa exponent
In mod analog se va reprezenta si intern numarul, singura deosebire fiind
codificarea exponentului si a mantisei in sistem binar. In plus
se vor folosi 2 biti pentru reprezentarea semnului mantisei si a exponentului.
Conform acestor conventii, daca se considera reprezentarea in virgula
mobila pe 32de biti, bitii vor fi folositi astfel: un bit pentru semnul numarului,
un but pentru semnul exponentului, 7 biti pentru exponent si 23 de biti pentru
mantisa.
De exemplu:
· 12,5(10)=1100,1(2)=0,1100(2)*24=0,11001(2)*10(2)100(2):
· mantisa este 11001
· exponentul este 4(10)=100(2)
· semnul numarului este pozitiv-0
· semnul mantisei este pozitiv-0, iar reprezentarea numarului este:
0 0 0000100 11001 00 0000 0000 0000 0000 valoarea biti nesemnificativi pentru bit bit exponent mantisei completare semn semn numar exponent mantisa
· -7(10)=-111(2)=-0,111(2)*23=-0,111(2)*10(2)11(2)
· mantisa este 111,
· exponentul este 3(10)=11(2),
· semnul numarului este negativ-1,
· semnul mantisei este pozitiv, iar reprezentarea este:
1 0 0000011 111 0000 0000 0000 0000 0000 valoarea biti nesemnificativi pentru bit bit exponent mantisei completare semn semn numar exponent mantisa
In aceasta reprezentare s-au folosit 32 de biti din care 7 pentru reprezentarea
exponentului, 23 pentru reprezentarea mantisei. Cel mai mare numar pozitiv care
se poate scrie in acest caz se stabileste astfel:
· Cu 23 cifre binare cel mai mare numar care se poate scrie este:
223=(210)23/10=(1000)23/10=(103)23/10=1069/10I107 deci numarul maxim de cifre semnificative este 7.
· Cu 7cifre binare cel mai mare exponent care se poate scrie este 27-1=127:
Factorul de multiplicare cel mai mare va fi:
2127=(210)127/10=10381/10I1038.
Deci domeniul de valori al datei reprezentate cu 7 cifre binare pentru exponent
si 23 de cifre binare pentru mantisa va fi -1038...1038, iar data va avea maxim
7 cifre semnificative.
Reprezentarea in virgula mobila permite memorarea numerelor reale de diferite
dimensiuni cu o precizie foarte mare.
In functie de numarul de biti folositi pentru reprezentarea numarului
exista: reprezentare de simpla precizie-pe 32 biti si reprezentare in
dubla precizie-pe 64 de biti.