Sunteți pe pagina 1din 10

CUPRINS

3. REPREZENTAREA I PRELUCRAREA INFORMAIEI N CALCULATOARELE NUMERICE......... 3-1 3.1 REPREZENTAREA INFORMAIEI N CALCULATOARELE NUMERICE ....................................................................... 3-2 3.1.1 Reprezentarea informaiei numerice. ....................................................................................................... 3-2
3.1.1.1 3.1.1.2 3.1.1.3 Reprezentarea n binar. ........................................................................................................................................ 3-2 Reprezentarea n cod Gray ................................................................................................................................... 3-2 Reprezentarea n BCD ( zecimal codificat binar)................................................................................................. 3-3 Reprezentarea n virgul fix. .............................................................................................................................. 3-5 Reprezentarea n virgul mobil .......................................................................................................................... 3-6

3.1.2 3.1.3

Reprezentarea virgulei ............................................................................................................................. 3-5 Reprezentarea semnului 3-6

3.1.2.1 3.1.2.2 3.1.3.1 3.1.3.2 3.1.3.3

Codul direct ......................................................................................................................................................... 3-7 Codul invers ......................................................................................................................................................... 3-7 Codul complementar ............................................................................................................................................ 3-7

3.1.4

Reprezentarea informaiei alfanumerice. ................................................................................................ 3-9

3-0

3. REPREZENTAREA I PRELUCRAREA INFORMAIEI N CALCULATOARELE NUMERICE

OBIECTIVE Obiectivele principale ale acestui capitol sunt orientate spre prezentarea diferitelor modaliti de reprezentare a informaiilor numerice i alfanumerice i efectuarea operaiilor aritmetice i logice n calculatoarele numerice. Se analizeaz algoritmii de efectuare a operaiilor aritmetice n funcie de codul de reprezentare i soluiile de implementare a acestora.

3-1

3.1 Reprezentarea informaiei n calculatoarele numerice n calculatoarele numerice informaia, instruciunile i datele se reprezint sub forma binar. Pentru a reprezenta informaia n calculatoarele numerice i a o interpreta n anumite contexte trebuie s avem n vedere urmtoarele aspecte: - reprezentarea informaiei numerice (a datelor numerice); - reprezentarea informaiei alfanumerice. 3.1.1 Reprezentarea informaiei numerice. Pentru a reprezenta datele numerice se ine seama de urmtoarele: - codul de reprezentare; - reprezentarea virgulei; - reprezentarea semnului. Din punctul de vedere al codului de reprezentare, n structurile numerice se utilizeaz: - reprezentarea n codul binar; - reprezentarea n codul Gray; - reprezentarea n codul BCD (zecimal codificat binar). 3.1.1.1 Reprezentarea n binar. Codul binar corespunde reprezentrii binare a informaiei numerice, n care fiecare cifr are o anumit pondere n funcie de poziia pe care o ocup n reprezentarea numrului (Tabelul 3.1). n general: N = xnxn-1xn-2...x0 Valoarea numrului fiind Exemplu: Tabelul 3.1 Zecimal Binar 0 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 8 1000

Vn = xi * 2
i =0

n reprezentarea pe care am artat-o nu am considerat semnul i nici poziia virgulei. n evaluarea numrului am considerat o reprezentare ca numr natural.

3.1.1.2 Reprezentarea n cod Gray Codul de reprezentare Gray are proprietatea c dou numere adiacente difer printr-un singur bit. Se consider ca fiind un cod reflectat (tabelul 3.2).

3-2

Fie Nb = bnbn-1...b0 un numr reprezentat n binar i Ng = gngn-1...g0 acelai numr reprezentat n cod Gray. unde bi i gi { 0,1 } Se pune problema dac cunoatem o reprezentare cum putem s o determinm pe cealalt. Nb Ng sau Ng Nb n cazul transformrii din cod binar n cod Gray, Nb Ng, relaia dintre cifre este: gi = bi bi+1 considernd bn+1 = 0 n cazul transformrii din cod Gray n cod binar, Ng Nb, relaia dintre cifre este: bi = gi gi+1 ... gn

Exemplu: Pentru un convertor din Binar n Gray i invers rezult urmtoarele ecuaii 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 funciilor logice conduce la nite circuite logice combinaionale.

Tabelul 3.2 Zecimal Binar 0 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 8 1000 9 1001 10 1010 11 1011 12 1100 13 1101 14 1110 15 1111

Gray 0000 0001 0011 0010 0110 0111 0101 0100 1100 1101 1111 1110 1010 1011 1001 1000

3.1.1.3 Reprezentarea n BCD ( zecimal codificat binar) n aceast reprezentare, fiecare cifr zecimal este exprimat n cod binar prin 4 cifre binare. ntruct cu 4 cifre binare putem reprezenta 16 valori, exist mai multe posibiliti de punere n coresponden a celor 10 cifre zecimale cu codificarea binar pe 4 bii. Felul n care se face corespondena ntre cifrele zecimale i reprezentarea binar pe 4 bii poate conduce la simplificarea circuitelor logice de calcul i de comand ale unei structuri numerice. Reprezetarea n cod BCD este adecvat n majoritatea sistemelor dedicate cu afiare direct.

3-3

n practic se corespondene: Zecimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Binar

utilizeaz Cod 8-4-2-1 0000=0 0001=1 0010=2 0011=3 0100=4 0101=5 0110=6 0111=7 1000=8 1001=9

foarte Cod 2-4-2-1 0000=0 0001=1 0010=2 0011=3 0100=4

frecvent

urmtoarele

Cod exces 3

0000 0001 0010 0011 0011=0 0100 0100=1 0101 0101=2 0110 0110=3 0111 0111=4 1000 1000=5 1001 1001=6 1010 1010=7 1011 1011=5 1011=8 1100 1100=6 1100=9 1101 1101=7 1110 1110=8 1111 1111=9 Primele dou coduri sunt considerate coduri ponderate iar cellalt este un cod neponderat. Codurile BCD 2-4-2-1 i exces 3 sunt coduri autocomplementate, deoarece complementul fa de 9 se realizeaz prin simpla inversare a biilor de reprezentare (0000=0 1111=9, 0001=1 1110=8, 0010=2 1101=7 etc.) n practic exist i coduri BCD care folosesc mai mult de 4 bii pentru codificarea unei cifre zecimale, n scopul de a oferi posibilitatea unei verificri automate. n cazul utilizrii unui cod BCD 8-4-2-1, realizarea conversiei din binar n BCD i invers se face pe baza urmtoarelor reguli. Conversie din Binar n BCD 8-4-2-1: Procesul de conversie din Binar n BCD 8-4-2-1 se realizeaz printr-o deplasare, ncepnd cu cifra cms a reprezentrii binare. n timpul deplasrii se va realiza o modificare a ponderilor biilor astfel nct fiecare decad a reprezentrii s fie o decad valid (s conin o valoare ntre 0 i 9). nainte de a realiza deplasarea se adaug 3 la acele decade care conin o valoare strict mai mare dect 4. Conversie din BCD 8-4-2-1 n Binar: Procesul de conversie din BCD 8-4-2-1 n Binar se realizeaz printr-o deplasare, ncepnd cu cifra cmps a reprezentrii BCD. n timpul deplasrii se va realiza o modificare a ponderilor biilor astfel nct dup deplasare s rezulte o reprezentare binar. Dup realizarea deplasrii se scade 3 la acele decade care conin o valoare mai mare sau egal cu 8. Justificarea acestor reguli de conversie este destul de simpl, aa c nu o prezentm. De notat c aceste corecii nu se realizeaz prin adunare, respectiv scdere, ci se realizeaz cu ajutorul unor circuite combinaionale care schimb ponderile biilor. Aceste circuite combinaionale sunt implementate pentru o decad i sunt utilizate n cascad. Ecuaiile logice pentru un circuit de corecie sunt urmtoarele: Ecuaiile logice pentru circuitul de corecie utilizat n conversia Binar - BCD 3-4

BCD 0 = B 0 B 2 B3 + B 0 B1 B 2 + B 0 B 3 BCD 0 = B 0 B1 + B 0 B3 + B1 B 2

BCD 0 = B 0 B3 + B 0 B1 B 2 B 0 = BCD BCD 3 B +B BCD = B0 B +B


0 0 2 1 2

B1 = BCD 0 BCD1 + BCD1 BCD 3 + BCD 0 BCD1 BCD 3 Ecuaiile logice pentru circuitul de corecie utilizat n conversia BCD - Binar:
3.1.2 Reprezentarea virgulei n calculatoarele numerice numerele se pot reprezenta din punct de vedere al virgulei n dou

B 2 = BCD 2 BCD 3 + BCD 0 BCD1 BCD 3 + BCD 0 BCD 21 BCD 3 B 3 = BCD 2 BCD 3 + BCD 0 BCD1 BCD 3
moduri: - virgul fix; - virgul mobil. Virgula nu ocup un bit din reprezentarea numrului, ci este considerat ntr-o anumit poziie numai n interpretarea valorii numrului. 3.1.2.1 Reprezentarea n virgul fix. n virgul fix numerele se pot reprezenta n funcie de poziia virgulei n trei moduri: -numere ntregi: poziia virgulei fiind interpretat dup cifra cea mai putin semnificativ x0 x = xnxn-1 ... x1x0, n i = iar valoarea numrului Vx xi * 2
i= 0

-numere subunitare: poziia virgulei fiind interpretat nainte de cifra cea mai semnificativ x-1 x = ,x-1x-2 ... x-n+1x-n n -i iar valoarea numrului Vx = x-i * 2
i= 0

-numere reale: poziia virgulei fiind interpretat n cadrul reprezentrii. Exist un grup de bii care specific partea ntreag i un numr de bii care specific partea fracionar. Aceast reprezentare combin cele dou reprezentri anterioare. n practic se utilizeaz numai n structuri numerice dedicate, n care se conoate foarte bine domeniul de valori al datelor. x = xkxk-1 ... x1x0,x-1x-2 k... x-m m i -i = * + iar valoarea numrului Vx xi 2 x-i * 2
i= 0 i= 0

n marea majoritate a calculatoarelor se utilizeaz reprezentarea n virgul fix numere ntregi.

3-5

3.1.2.2 Reprezentarea n virgul mobil n virgul mobil, numerele se reprezint prin dou componente: - mantis; - exponent. Un grup de bii sunt utilizai pentru reprezentarea mantisei, n virgul fix numere subunitare, iar alt grup de bii sunt utilizai pentru reprezentarea exponentului n virgul fix numere ntregi. 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 numrului Vx = VM * bVE unde b constituie baza de reprezentare. n general baza b este 2, ns sunt calculatoare care utilizeaz ca baz b = 8, sau b = 16. n reprezentarea n virgul mobil interpretarea poziiei virgulei se face n funcie de valoarea exponentului. Exemplu: S considerm numrul n zecimal N = 123.456, iar baza de reprezentare s fie b = 10. De asemenea s considerm c se pot reprezenta maximum 7 cifre zecimale, avnd n vedere lungimea limitat a cuvntului de calculator. n acest caz numrul N poate avea mai multe reprezentri astfel: N = 0.123456000 * 103 , unde b=10 E=3 i M=0.123456 N = 0.012345600 * 104 , unde b=10 E=4 i M=0.0123456 N = 0.001234560 * 105 , unde b=10 E=5 i M=0.00123456 N = 0.000123456 * 106 , unde b=10 E=6 i M=0.000123456 N = 0.000012345 * 107 , unde b=10 E=7 i M=0.000012345 N = 0.000001234 * 108 , unde b=10 E=8 i M=0.000001234 N = 0.000000123 * 109 , unde b=10 E=9 i M=0.000000123 N = 0.000000012 * 1010 , unde b=10 E=10 i M=0.000000012 N = 0.000000001 * 1011 , unde b=10 E=11 i M=0.000000001 N = 0.000000000 * 1012 , unde b=10 E=12 i M=0.000000000 n acest exemplu se observ c poziia virgulei se stabilete n funcie de valoarea exponentului. n acelai timp se observ ca datorit numrului finit de cifre alocate reprezentrii mantisei, se poate ajunge n situaia n care se pierd cifre semnificative ale reprezentrii numrului (n acest exemplu se pierd cifre ncepnd cu exponent E = 7). Din aceast cauz, pentru a nu se pierde cifre semnificative, n reprezentarea n virgul mobil trebuie ca mantisa s fie normalizat, adic : 1/b [M ]< 1 n exemplul considerat, singura reprezentare corect innd seama de normalizarea mantisei este: N = 0.123456000 * 103 , unde b=10 E=3 i M=0.123456 3.1.3 Reprezentarea semnului n calculatoarele numerice semnul ocup o poziie n reprezentare. Se consider convenia ca bitul de semn s aib urmtoarea semnifificaie: xs = 0 semnul este pozitiv xs = 1 semnul este negativ iar poziia sa este n general n partea din stnga a reprezentrii. x = xsxnxn-1 ... x1x0, n virgul fix, numere ntregi 3-6

x = xs,x-1x-2 ... x-n+1x-n n virgul fix, numere subunitare inndu-se seama de dispozitivele aritmetice utilizate n prelucrri numerice (sumatoare, scztoare, nmulitoare, etc.) sunt frecvent folosite urmtoarele coduri de reprezentare a numerelor cu semn: - Codul direct (reprezentarea prin mrime i semn); - Codul invers (complement fa de 1); - Codul complementar (complement fa de 2). n cele ce urmeaz vom considera numere n virgul fix, i fr s pierdem din generalitate ne vom rezuma la cele subunitare.
3.1.3.1 Codul direct Un numr x = xsx-1x-2...x-n , reprezentat n virgul fix, subunitar se reprezint n cod direct astfel: x = 0 x 1 x 2L x n dac x 0 x d= = L dac x 0 x 1 x 1 x 2 x n Se observ c numai semnul este diferit, biii care reprezint valoarea numrului sunt aceeai. n aceast cod zero are dou reprezentri.

[]

3.1.3.2 Codul invers Un numr x = xsx-1x-2...x-n , reprezentat n virgul fix, subunitar se reprezint n cod invers astfel: x = 0 x 1 x 2 L x n dac x 0 x i = = L dac x 0 x 1 1 2 n unde: -i este complementul fa de 1 a lui x-i, adic -i = 1-x-i

[]

3.1.3.3 Codul complementar Un numr x = xsx-1x-2...x-n , reprezentat n virgul fix, subunitar se reprezint n cod complementar astfel: x = 0 x 1 x 2 L x n dac x 0 x c= = ~ ~ L ~ dac x 0 x 1 x 1 x 2 x n unde: x 1 ~ x 2L ~ x n dac x 0 , se obine din 2 - [x] x =1 ~

[]

Se observ c dac numrul este pozitiv are aceeai reprezentare n toate cele trei coduri.

3-7

Exemplu: S considerm o lungime de cuvnt de 8 bii, un bit pentru semn i 7 pentru mrimea numrului. Vom considera cele trei coduri de reprezentare ale unor numere n virgul fix subunitare: Zecimal Cod direct Cod invers Cod complementar 127/128 01111111 01111111 01111111 126/128 01111110 01111110 01111110 64/128 01000000 01000000 01000000 15/128 00001111 00001111 00001111 7/128 00000111 00000111 00000111 1/128 00000001 00000001 00000001 0/128 00000000 00000000 00000000 - 0/128 10000000 11111111 10000000 - 1/128 10000001 11111110 11111111 - 7/128 10000111 11111000 11111001 - 15/128 10001111 11110000 11110001 - 64/128 11000000 10111111 11000000 -126/128 11111110 10000001 10000010 -127/128 11111111 10000000 10000001 Acelai exemplu pentru reprezentarea n virgul fix numere ntregi. Zecimal Cod direct Cod invers Cod complementar 127 01111111 01111111 01111111 126 01111110 01111110 01111110 64 01000000 01000000 01000000 15 00001111 00001111 00001111 7 00000111 00000111 00000111 1 00000001 00000001 00000001 0 00000000 00000000 00000000 - 0 10000000 11111111 10000000 - 1 10000001 11111110 11111111 - 7 10000111 11111000 11111001 - 15 10001111 11110000 11110001 - 64 11000000 10111111 11000000 -126 11111110 10000001 10000010 -127 11111111 10000000 10000001 Se observ c cele dou reprezentri n virgul fix sunt identice. Deosebirea se face numai prin convenia de interpretare a poziiei virgulei. Putem stabili o relaie ntre reprezentarea n cod invers i cod complementar, n cazul numerelor negative. [x] + [x]i = 0x-1x-2...x-n + 11-2...-n = 2 - 2-n deci rezult: [x]c = [x]i + 2-n Rezult c realizarea complementului fa de 2 se poate face prin dou metode. Metoda 1
3-8

Se realizeaz complementul fa de 1 i se adun 1 la poziia cea mai puin semnificativ a acestuia. Metoda 2 Se parcurge numrul de la dreapta spre stnga. Zerourile i prima unitate ntlnit rmn nemodificate iar n continuare se neag biii. Complementul fa de 2 se poate realiza i folosind un circuit combinaional care se bazeaz pe urmtoarele funcii logice: Ci = (B0 B1 ... Bi-1) Bi
3.1.4 Reprezentarea informaiei alfanumerice. Informaia alfanumeric cuprinde n general literele mari i mici ale alfabetului englez, semnele de punctuaie, operatorii aritmetici i logici, simboluri pentru controlul comunicaiei i editrii, litere specifice unor alfabete naionale, precum i caractere semigrafice. Informaia alfanumeric se codific punnd n coresponden biunivoc coduri binare cu fiecare simbol ce trebuie reprezentat. Exist multe posibiliti 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 utilizat codificare n calculatoarele numerice este codificarea ASCII. Setul de caractere ASCII este prezentat n ANEXA-A.

3-9