Referat Reprezentarea Interna A Datelor

Mai jos puteti citi fragmente din Referat Reprezentarea Interna A Datelor si de asemenea puteti face Download Referat Reprezentarea interna a datelor

Citeste fragmente din Referat Reprezentarea Interna A Datelor

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(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: (pentru 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 (pentru 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: (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 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 definiţie pentru o data de tip numeric întreg cu semn, reprezentată în complement faţă de 2 şi cu 8 cifre binare (1 octet sau 1 byte), va fi -128...+127, iar pentru cea reprezentată cu 16 cifre binare(2 octeţi sau un cuvânt), va fi -65536...+65535. Numărul întreg 9 nu este codificat în acelaşi cu caracterul 9. Cum se reprezintă numerele reale? Numerele reale sunt numerele care sunt formate din: semn, parte întreagă şi parte fracţionară. Ele pot fi reprezentate în 2 moduri: În virgulă fixă (binary fixed point) În virgulă mobilă (binary floating point) Cum se reprezintă numerele în virgulă fixă? În reprezentarea în virgulă fixă se presupune ca partea întreagă este despărţită de partea fracţionară printr-o virgulă imaginară care se găseşte într-o poziţie fixă. În acest caz sunt fixe atât numărul de poziţii ale părţii întregi cât şi numărul de poziţii ale părţii fracţionare. Poziţia virgulei fixe este o caracteristică a tipului de calculator şi a modului în care4 este construit. De exemplu dacă se reprezintă pe 8 biţi un număr fracţionar cu numărul de poziţii întregi 5, automat numărul de poziţii zecimale va fi 3. În cazul în care numărul N care se reprezintă este pozitiv, domeniul de valori al datei va fi: 00000,000(2)≤N≤11111,111(2) adică: 0,0(10)≤N≤31,925(10) Dacă numărul este negativ, se va reprezenta prin complementul faţă de 2, primul bit fiind bitul de semn şi domeniul de valori al datei va fi: 11111,11(2)≤N≤01111,111(2) adică: -16,025(10)≤N≤5,925(10) Această reprezentare a numerelor reale nu este avantajoasă deoarece nu permite decât reprezentarea unei game restrânse de numere reale. În unele calculatoare, poziţia virgulei este plasată la dreapta numărului lucrându-se cu numărul real ca şi cum ar fi un număr întreg. Pentru a reprezenta adevărata valoare, în programul care exploatează numărul respectiv trebuie introdus un factor de scară. De exemplu numărul 12,34 va fi reprezentat ca un număr întreg: 12,34*102=1234, iar programul va trebui să actualizeze numărul folosind factorul de scară 10-2. Cum se reprezintă numerele în virgulă mobilă? ª ä ê ë < = C ¥ ä 4cimale, iar reprezentarea obţinută se numeşte în virgulă mobilă deoarece virgula zecimală îşi schimbă poziţia în funcţie de valoarea exponentului. De exemplu reprezentarea în notaţie ştiinţifică este: 12,5=12,5*100=0,125*102=125*10-1=125E-1 mantisă exponent În mod analog se va reprezenta şi intern numărul, singura deosebire fiind codificarea exponentului şi a mantisei în sistem binar. În plus se vor folosi 2 biţi pentru reprezentarea semnului mantisei şi a exponentului. Conform acestor convenţii, dacă se consideră reprezentarea în virgulă mobilă pe 32de biţi, biţii vor fi folosiţi astfel: un bit pentru semnul numărului, un but pentru semnul exponentului, 7 biţi pentru exponent şi 23 de biţi pentru mantisă. 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 numărului este pozitiv-0 semnul mantisei este pozitiv-0, iar reprezentarea numărului este: 0 0 0000100 11001 00 0000 0000 0000 0000 valoarea biţi nesemnificativi pentru bit bit exponent mantisei completare semn semn număr exponent mantisă -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 numărului este negativ-1, semnul mantisei este pozitiv, iar reprezentarea este: 1 0 0000011 111 0000 0000 0000 0000 0000 valoarea biţi nesemnificativi pentru bit bit exponent mantisei completare semn semn număr exponent mantisă În această reprezentare s-au folosit 32 de biţi din care 7 pentru reprezentarea exponentului, 23 pentru reprezentarea mantisei. Cel mai mare număr pozitiv care se poate scrie în acest caz se stabileşte astfel: Cu 23 cifre binare cel mai mare număr care se poate scrie este: 223=(210)23/10=(1000)23/10=(103)23/10=1069/10~107 deci numărul 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/10~1038. Deci domeniul de valori al datei reprezentate cu 7 cifre binare pentru exponent şi 23 de cifre binare pentru mantisă va fi -1038...1038, iar data va avea maxim 7 cifre semnificative. Reprezentarea în virgulă mobilă permite memorarea numerelor reale de diferite dimensiuni cu o precizie foarte mare. În funcţie de numărul de biţi folosiţi pentru reprezentarea numărului există: reprezentare de simplă precizie-pe 32 biţi şi reprezentare în dublă precizie-pe 64 de biţi. 쥁@