CATEGORII DOCUMENTE |
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.
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.
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.
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).
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
|
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.
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
|
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
In cazul
transformarii din cod binar in cod
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.
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:
|
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:
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.
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.
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
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.
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.
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
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:
|
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
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 |
Vizualizari: 2052
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved