REPREZENTAREA INTERNA A DATELOR
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).
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:
de concatenare(din doua siruri de caractere se obtine un singur sir):"buna"+"ziua!"= "buna ziua"
de comparare(comparatia se executa prin compararea secventelor de cod ASCIL,deci prin compararea a doua numere): "a">"A"sau"a">"9" s-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:
aritmetici(prin care se pot executa operatii aritmetice:+,-,*,/):9/3 + 6*2 - 4
de 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
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:
pentru numarul 9: 9
0 000 0000 000 0000 0000 0000 0000 1001
bitul biti nesemnifiactivi pentru reprezentarea in
de semn completarea reprezentarii binar a numarului 9
pentru numarul -6: 6
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:
bitii de semn ai numerelor trebuie tratati separat, exista doua reprezentari pentru cifra 0:
0 000 0000 0000 0000 0000 0000 0000 0000,
1 000 0000 0000 0000 0000 0000 0000 0000,
trebuie 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=2ⁿ - 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:
-2ⁿ‾¹ ≤ 2ⁿ‾¹ -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:
mantisa este 11001
exponentul este 4(10)=100(2)
semnul numarului este pozitiv-0
semnul mantisei este pozitiv-0,
iar reprezentarea numarului este:
0 0000100 11001 00 0000 0000 0000 0000
valoarea biti nesemnificativi pentru
bit bit exponent mantisei completare
semn semn
numar exponent mantisa
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:
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:
Deci domeniul de valori al datei reprezentate cu 7 cifre binare pentru exponent si 23 de cifre binare pentru mantisa va fi -10381038, 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.
Powered by https://www.preferatele.com/ cel mai complet site cu referate |