Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


REPREZENTAREA SI PRELUCRAREA INFORMATIEI IN CALCULATOARELE NUMERICE

algoritmi



+ Font mai mare | - Font mai mic





REPREZENTAREA SI PRELUCRAREA INFORMATIEI IN CALCULATOARELE NUMERICE

Reprezentarea informatiei in calculatoarele numerice

Reprezentarea informatiei numerice.

Reprezentarea in binar.

Reprezentarea in cod Gray

Reprezentarea in BCD ( zecimal codificat binar)

Reprezentarea virgulei

Reprezentarea in virgula fixa.

Reprezentarea in virgula mobila

Reprezentarea semnului

Codul direct

Codul invers

Codul complementar

Reprezentarea informatiei alfanumerice.

REPREZENTAREA SI PRELUCRAREA INFORMATIEI IN CALCULATOARELE NUMERICE

OBIECTIVE

Obiectivele principale ale acestui capitol sunt orientate spre prezentarea diferitelor modalitati de reprezentare a informatiilor numerice si alfanumerice si efectuarea operatiilor aritmetice si logice in calculatoarele numerice. Se analizeaza algoritmii de efectuare a operatiilor aritmetice in functie de codul de reprezentare si solutiile de implementare a acestora.

Reprezentarea informatiei in calculatoarele numerice

In calculatoarele numerice informatia, instructiunile si datele se reprezinta sub forma binara. Pentru a reprezenta informatia in calculatoarele numerice si a o interpreta in anumite contexte trebuie sa avem in vedere urmatoarele aspecte:

‑ reprezentarea informatiei numerice (a datelor numerice);

‑ reprezentarea informatiei alfanumerice.

Reprezentarea informatiei numerice.

Pentru a reprezenta datele numerice se tine seama de urmatoarele:

‑ codul de reprezentare;

‑ reprezentarea virgulei;

‑ reprezentarea semnului.

Din punctul de vedere al codului de reprezentare, in structurile numerice se utilizeaza:

‑ reprezentarea in codul binar;

‑ reprezentarea in codul Gray;

‑ reprezentarea in codul BCD (zecimal codificat binar).

Reprezentarea in binar.

Codul binar corespunde reprezentarii binare a informatiei numerice, in care fiecare cifra are o anumita pondere in functie de pozitia pe care o ocupa in reprezentarea numarului (Tabelul 1).

Exemplu:

Tabelul

Zecimal

Binar

in general:

N = xnxn‑1xn‑2x0

Valoarea numarului fiind

In reprezentarea pe care am aratat‑o nu am considerat semnul si nici pozitia virgulei. In evaluarea numarului am considerat o reprezentare ca numar natural.

Reprezentarea in cod Gray

Codul de reprezentare Gray are proprietatea ca doua numere adiacente difera printr‑un singur bit. Se considera ca fiind un cod reflectat (tabelul 2).

Tabelul

Zecimal

Binar

Gray

Fie

Nb = bnbn‑1b0 un numar reprezentat in binar si

Ng = gngn‑1g0 acelasi numar reprezentat in cod Gray.

unde bi si gi I

Se pune problema daca cunoastem o reprezentare cum putem sa o determinam pe cealalta.

Nb Ng

sau Ng Nb

In cazul transformarii din cod binar in cod Gray, Nb Ng, relatia dintre cifre este:

gi = bi bi+1 considerand bn+1 = 0

In cazul transformarii din cod Gray in cod binar, Ng Nb, relatia dintre cifre este:

bi = gi gi+1 gn

Exemplu:

Pentru un convertor din Binar in Gray si invers rezulta urmatoarele ecuatii logice:

Conversia Binar ‑ Gray:

g0 = b0 b1

g1 = b1 b2

g2 = b2 b3

g3 = b3

Conversia Gray ‑ Binar:

b0 = g0 g1 g2 g3

b1 = g1 g2 g3

b2 = g2 g3

b3 = g3

Implementarea functiilor logice conduce la niste circuite logice combinationale.

Reprezentarea in BCD ( zecimal codificat binar)

In aceasta reprezentare, fiecare cifra zecimala este exprimata in cod binar prin 4 cifre binare. intrucat cu 4 cifre binare putem reprezenta 16 valori, exista mai multe posibilitati de punere in corespondenta a celor 10 cifre zecimale cu codificarea binara pe 4 biti. Felul in care se face corespondenta intre cifrele zecimale si reprezentarea binara pe 4 biti poate conduce la simplificarea circuitelor logice de calcul si de comanda ale unei structuri numerice.

Reprezetarea in cod BCD este adecvata in majoritatea sistemelor dedicate cu afisare directa.

In practica se utilizeaza foarte frecvent urmatoarele corespondente:

Zecimal

Binar

Cod 8‑4‑2‑1

Cod 2‑4‑2‑1

Cod exces 3

Primele doua coduri sunt considerate coduri ponderate iar celalalt este un cod neponderat.

Codurile BCD 2‑4‑2‑1 si exces 3 sunt coduri autocomplementate, deoarece complementul fata de 9 se realizeaza prin simpla inversare a bitilor de reprezentare (0000=0 1111=9, 0001=1 1110=8, 0010=2 1101=7 etc.)

In practica exista si coduri BCD care folosesc mai mult de 4 biti pentru codificarea unei cifre zecimale, in scopul de a oferi posibilitatea unei verificari automate.

In cazul utilizarii unui cod BCD 8‑4‑2‑1, realizarea conversiei din binar in BCD si invers se face pe baza urmatoarelor reguli.

Conversie din Binar in BCD 8‑4‑2‑1:

Procesul de conversie din Binar in BCD 8‑4‑2‑1 se realizeaza printr‑o deplasare, incepand cu cifra cms a reprezentarii binare. In timpul deplasarii se va realiza o modificare a ponderilor bitilor astfel incat fiecare decada a reprezentarii sa fie o decada valida (sa contina o valoare intre 0 si 9).

Inainte de a realiza deplasarea se adauga 3 la acele decade care contin o valoare strict mai mare decit 4.

Conversie din BCD 8‑4‑2‑1 in Binar:

Procesul de conversie din BCD 8‑4‑2‑1 in Binar se realizeaza printr‑o deplasare, incepand cu cifra cmps a reprezentarii BCD.

In timpul deplasarii se va realiza o modificare a ponderilor bitilor astfel incat dupa deplasare sa rezulte o reprezentare binara.

Dupa realizarea deplasarii se scade 3 la acele decade care contin o valoare mai mare sau egala cu 8.

Justificarea acestor reguli de conversie este destul de simpla, asa ca nu o prezentam.

De notat ca aceste corectii nu se realizeaza prin adunare, respectiv scadere, ci se realizeaza cu ajutorul unor circuite combinationale care schimba ponderile bitilor. Aceste circuite combinationale sunt implementate pentru o decada si sunt utilizate in cascada.

Ecuatiile logice pentru un circuit de corectie sunt urmatoarele:

Ecuatiile logice pentru circuitul de corectie utilizat in conversia Binar ‑ BCD




Ecuatiile logice pentru circuitul de corectie utilizat in conversia BCD ‑ Binar:


Reprezentarea virgulei

In calculatoarele numerice numerele se pot reprezenta din punct de vedere al virgulei in doua moduri:

‑ virgula fixa;

‑ virgula mobila.

Virgula nu ocupa un bit din reprezentarea numarului, ci este considerata intr‑o anumita pozitie numai in interpretarea valorii numarului.

Reprezentarea in virgula fixa.

In virgula fixa numerele se pot reprezenta in functie de pozitia virgulei in trei moduri:

‑numere intregi: pozitia virgulei fiind interpretata dupa cifra cea mai putin semnificativa x0

x = xnxn‑1 x1x0,

iar valoarea numarului

numere subunitare: pozitia virgulei fiind interpretata inainte de cifra cea mai semnificativa x‑1

x = ,x‑1x‑2 x‑n+1x‑n

iar valoarea numarului

numere reale: pozitia virgulei fiind interpretata in cadrul reprezentarii. Exista un grup de biti care specifica partea intreaga si un numar de biti care specifica partea fractionara. Aceasta reprezentare combina cele doua reprezentari anterioare. In practica se utilizeaza numai in structuri numerice dedicate, in care se conoaste foarte bine domeniul de valori al datelor.

x = xkxk‑1 x1x0,x‑1x‑2 x‑m

iar valoarea numarului

In marea majoritate a calculatoarelor se utilizeaza reprezentarea in virgula fixa numere intregi.

Reprezentarea in virgula mobila

In virgula mobila, numerele se reprezinta prin doua componente:

‑ mantisa;

‑ exponent.

Un grup de biti sunt utilizati pentru reprezentarea mantisei, in virgula fixa numere subunitare, iar alt grup de biti sunt utilizati pentru reprezentarea exponentului in virgula fixa numere intregi.

x = E,M

x = xkxk‑1 x1x0,x‑1x‑2 x‑m

unde:

E = xkxk‑1 x1x0,

M = ,x‑1x‑2 x‑m

iar valoarea numarului Vx = VM * bVE

unde b constituie baza de reprezentare.

In general baza b este 2, insa sunt calculatoare care utilizeaza ca baza b = 8, sau b = 16.

In reprezentarea in virgula mobila interpretarea pozitiei virgulei se face in functie de valoarea exponentului.

Exemplu:

Sa consideram numarul in zecimal N = 12456, iar baza de reprezentare sa fie b = 10.

De asemenea sa consideram ca se pot reprezenta maximum 7 cifre zecimale, avand in vedere lungimea limitata a cuvantului de calculator.

In acest caz numarul N poate avea mai multe reprezentari astfel:

N = 0.123456000 * 103 , unde b=10 E=3 si M=0.123456

N = 0.012345600 * 104 , unde b=10 E=4 si M=0.0123456

N = 0.001234560 * 105 , unde b=10 E=5 si M=0.00123456

N = 0.000123456 * 106 , unde b=10 E=6 si M=0.000123456

N = 0.000012345 * 107 , unde b=10 E=7 si M=0.000012345

N = 0.000001234 * 108 , unde b=10 E=8 si M=0.000001234

N = 0.000000123 * 109 , unde b=10 E=9 si M=0.000000123

N = 0.000000012 * 1010 , unde b=10 E=10 si M=0.000000012

N = 0.000000001 * 1011 , unde b=10 E=11 si M=0.000000001

N = 0.000000000 * 1012 , unde b=10 E=12 si M=0.000000000

In acest exemplu se observa ca pozitia virgulei se stabileste in functie de valoarea exponentului. In acelasi timp se observa ca datorita numarului finit de cifre alocate reprezentarii mantisei, se poate ajunge in situatia in care se pierd cifre semnificative ale reprezentarii numarului (in acest exemplu se pierd cifre incepand cu exponent E = 7). Din aceasta cauza, pentru a nu se pierde cifre semnificative, in reprezentarea in virgula mobila trebuie ca mantisa sa fie normalizata, adica :

1/b M < 1

In exemplul considerat, singura reprezentare corecta tinand seama de normalizarea mantisei este:

N = 0.123456000 * 103 , unde b=10 E=3 si M=0.123456

Reprezentarea semnului

In calculatoarele numerice semnul ocupa o pozitie in reprezentare. Se considera conventia ca bitul de semn sa aiba urmatoarea semnifificatie:

xs = 0 semnul este pozitiv

xs = 1 semnul este negativ

iar pozitia sa este in general in partea din stanga a reprezentarii.

x = xsxnxn‑1 x1x0, in virgula fixa, numere intregi

x = xs,x‑1x‑2 x‑n+1x‑n in virgula fixa, numere subunitare

Tinandu‑se seama de dispozitivele aritmetice utilizate in prelucrari numerice (sumatoare, scazatoare, inmultitoare, etc.) sunt frecvent folosite urmatoarele coduri de reprezentare a numerelor cu semn:

‑ Codul direct (reprezentarea prin marime si semn);

‑ Codul invers (complement fata de 1);

‑ Codul complementar (complement fata de 2).

In cele ce urmeaza vom considera numere in virgula fixa, si fara sa pierdem din generalitate ne vom rezuma la cele subunitare.

Codul direct

Un numar x = xsx‑1x‑2x‑n , reprezentat in virgula fixa, subunitar se reprezinta in cod direct astfel:

Se observa ca numai semnul este diferit, bitii care reprezinta valoarea numarului sunt aceeasi.

In aceast cod zero are doua reprezentari.

Codul invers

Un numar x = xsx‑1x‑2x‑n , reprezentat in virgula fixa, subunitar se reprezinta in cod invers astfel:

unde:

‑i este complementul fata de 1 a lui x‑i, adica ‑i = 1‑x‑i

Codul complementar

Un numar x = xsx‑1x‑2x‑n , reprezentat in virgula fixa, subunitar se reprezinta in cod complementar astfel:

unde:

se obtine din 2 ‑ x

Se observa ca daca numarul este pozitiv are aceeasi reprezentare in toate cele trei coduri.

Exemplu:

Sa consideram o lungime de cuvant de 8 biti, un bit pentru semn si 7 pentru marimea numarului. Vom considera cele trei coduri de reprezentare ale unor numere in virgula fixa subunitare:

Zecimal

Cod direct

Cod invers

Cod complementar

0/128

1/128

7/128

Acelasi exemplu pentru reprezentarea in virgula fixa numere intregi.

Zecimal

Cod direct

Cod invers

Cod complementar

0

1

7

Se observa ca cele doua reprezentari in virgula fixa sunt identice. Deosebirea se face numai prin conventia de interpretare a pozitiei virgulei.

Putem stabili o relatie intre reprezentarea in cod invers si cod complementar, in cazul numerelor negative.

[x] + [x]i = 0x‑1x‑2x‑n + 1 ‑n = 2 ‑ 2‑n

deci rezulta:

[x]c = [x]i + 2‑n

Rezulta ca realizarea complementului fata de 2 se poate face prin doua metode.

Metoda 1

Se realizeaza complementul fata de 1 si se aduna 1 la pozitia cea mai putin semnificativa a acestuia.

Metoda 2

Se parcurge numarul de la dreapta spre stanga. Zerourile si prima unitate intalnita raman nemodificate iar in continuare se neaga bitii.

Complementul fata de 2 se poate realiza si folosind un circuit combinational care se bazeaza pe urmatoarele functii logice:

Ci = (B0 B1 Bi‑1) Bi

Reprezentarea informatiei alfanumerice.

Informatia alfanumerica cuprinde in general literele mari si mici ale alfabetului englez, semnele de punctuatie, operatorii aritmetici si logici, simboluri pentru controlul comunicatiei si editarii, litere specifice unor alfabete nationale, precum si caractere semigrafice. Informatia alfanumerica se codifica punand in corespondenta biunivoca coduri binare cu fiecare simbol ce trebuie reprezentat.

Exista multe posibilitati de codificare. Printre cele mai cunoscute sunt:

- codul ASCII (American Standard Code for Information Interchange);

‑ codul EBCDIC (Extended Binary Coded Decimal Interchange Code);

‑ codul Holleritz;

‑ codul Baudot;

‑ codul ISO (International Standard Organization).

Cea mai utilizata codificare in calculatoarele numerice este codificarea ASCII.

Setul de caractere ASCII este prezentat in ANEXA-A.



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 2052
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved