Sunteți pe pagina 1din 24

REPREZENTAREA I PRELUCRAREA

INFORMAIEI N CALCULATOARELE
NUMERICE
3. REPREZENTAREA I PRELUCRAREA INFORMAIEI N CALCULATOARELE NUMERICE

3.1 Reprezentarea informaiei n calculatoarele numerice
3.1.1 Reprezentarea informaiei numerice
Reprezentarea n binar
Reprezentarea n cod Gray
Reprezentarea n BCD ( zecimal codificat binar)
3.1.2 Reprezentarea virgulei
Reprezentarea n virgul fix
Reprezentarea n virgul mobil
3.1.3 Reprezentarea semnului
Codul direct
Codul invers
Codul complementar
3.1.4 Reprezentarea informaiei alfanumerice
OBIECTIVE

-prezentarea diferitelor modaliti de reprezentare a informaiilor numerice i
alfanumerice;

-efectuarea operaiilor aritmetice i logice n calculatoarele numerice;

-analizarea algoritmilor de efectuare a operaiilor aritmetice n funcie de codul de
reprezentare;

-soluiile de implementare.
3.1 Reprezentarea informaiei n calculatoarele numerice

- reprezentarea informaiei numerice (a datelor numerice);
- reprezentarea informaiei alfanumerice.


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).
Zecimal Binar
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
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
n general:

N = x
n
x
n-1
x
n-2
...x
0


Valoarea numrului fiind:


2 x V
i
n
0 i
i n
*

=
=
Zecimal Binar Gray
0 0000 0000
1 0001 0001
2 0010 0011
3 0011 0010
4 0100 0110
5 0101 0111
6 0110 0101
7 0111 0100
8 1000 1100
9 1001 1101
10 1010 1111
11 1011 1110
12 1100 1010
13 1101 1011
14 1110 1001
15 1111 1000
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).
Fie
N
b
= b
n
b
n-1
...b
0
un numr reprezentat n
binar i
N
g
= g
n
g
n-1
...g
0
acelai numr reprezentat n
cod Gray.
unde b
i
i g
i
e { 0,1 }
Se pune problema dac cunoatem o
reprezentare cum putem s o determinm pe cealalt.
N
b
N
g

sau N
g
N
b

n cazul transformrii din cod binar n cod Gray, N
b
N
g
, relaia dintre cifre este:
g
i
= b
i
b
i+1
considernd b
n+1
= 0

n cazul transformrii din cod Gray n cod binar, N
g
N
b
, relaia dintre cifre este:
b
i
= g
i
g
i+1
... g
n

Exemplu:
Pentru un convertor din Binar n Gray i invers rezult urmtoarele ecuaii logice:
Conversia Binar - Gray:
g
0
= b
0
b
1

g
1
= b
1
b
2

g
2
= b
2
b
3

g
3
= b
3

Conversia Gray - Binar:
b
0
= g
0
g
1
g
2
g
3

b
1
= g
1
g
2
g
3

b
2
= g
2
g
3

b
3
= g
3


Implementarea funciilor logice => circuite logice combinaionale.
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.

Zecimal Binar Cod 8-4-2-1 Cod 2-4-2-1 Cod exces
3
0 0000 0000=0 0000=0
1 0001 0001=1 0001=1
2 0010 0010=2 0010=2
3 0011 0011=3 0011=3 0011=0
4 0100 0100=4 0100=4 0100=1
5 0101 0101=5 0101=2
6 0110 0110=6 0110=3
7 0111 0111=7 0111=4
8 1000 1000=8 1000=5
9 1001 1001=9 1001=6
10 1010 1010=7
11 1011 1011=5 1011=8
12 1100 1100=6 1100=9
13 1101 1101=7
14 1110 1110=8
15 1111 1111=9
In continuare va fi discutata pe scurt conversia din binar in BCD. Algoritmul de
conversie rezulta din echivalenta dintre o deplasare la stanga a unei valori binare si
inmultirea cu 2. Astfel, se considera doua grupuri de biti, corespunzatoare la doua
registre in cazul unei implementari hardware: grupul binar si grupul BCD (impartit in
decade de cate 4 biti corespunzatoare cifrelor zecimale). Se initializeaza grupul binar
cu valoarea binara de convertit, iar grupul BCD cu 0. Se executa deplasari succesive cu
cate o pozitie spre stanga atat in grupul binar cat si in grupul BCD, cu trecerea cate
unui bit din grupul binar in grupul BCD, incepand cu bitul c.m.s. Inainte de fiecare
deplasare se executa corectii in acele decade din grupul BCD care au o valoare > 4 (prin
deplasare stanga, echivalent cu o inmultire cu 2, se obtine o valoare > 9, deci care nu
este cifra BCD). Corectia consta din adunarea valorii 3 in fiecare decada cu valoare > 4
inainte de deplasare. Conversia se incheie in momentul in care toti bitii din grupul
binar au fost transferati in grupul BCD.
Exemplu. Se considera numarul in binar N
(2)
= 111110010. Sa se converteasca in BCD prin metoda
deplasarilor succesive prezentata mai sus.
Grup BCD Grup binar
0000 0000 0000 111110010
0000 0000 0001 11110010
0000 0000 0011 1110010
0000 0000 0111+ 110010
11

0000 0000 1010 110010
0000 0001 0101+ 10010
11

0000 0001 1000 10010
0000 0011 0001 0010
0000 0110+0010 010
11

0000 1001+0010 010
0001 0010 0100 10
0010 0100 1001+ 0
11

0010 0100 1100 0
0100 1001 1000

S-a obtinut rezultatul 498
(10)
in BCD pe 3x4 biti.
Conversia BCD - binar are la baza echivalenta dintre deplasarile succesive spre dreapta
si impartirile la 2. In acest caz se initializeaza grupul BCD cu valoarea BCD de convertit,
iar grupul binar cu 0. Se executa deplasari succesive spre dreapta cu o pozitie atat in
grupul BCD cat si in grupul binar, efectuand corectii la acele decade in care, dupa
deplasare, se obtine bitul c.m.s egal cu 1. Corectia consta in scaderea valorii 3
(echivalent cu adunarea complementului sau, 13) din fiecare decada cu valoarea 8
(care a primit prin deplasare in pozitia c.m.s un bit 1). Necesitatea corectiei rezulta din
faptul ca prin deplasare la dreapta cand un bit 1 trece din pozitia c.m.p.s. a unei
decade in pozitia c.m.s. a decadei inferioare alaturate, valoarea sa, relativ la decada
inferioara, scade de la 10 la 8, in loc sa scada de la 10 la 5 (prin impartire la 2). Deci se
executa corectia la decada inferioara in care a aparut bitul 1 in pozitia c.m.s., scazand
valoarea 3 (sau adunand 13).
Exemplu. Sa se reprezinte in BCD numarul N
(10)
=503 si sa se converteasca in binar prin metoda deplasarilor
succesive.
Grup BCD Grup binar
0101 0000 0011 000000000
0010 1000+0001 1
1101

0010 0101 0001 1
0001 0010 1000+ 11
1101

0001 0010 0101 11
0000 1001+0010 111
1101

0000 0110 0010 111
0000 0011 0001 0111
0000 0001 1000+ 10111
1101

0000 0001 0101 10111
0001 0000 1010+ 110111
1101

0000 0000 0111 110111
....... (nu se modifica configuratia de biti)
0000 0000 0000 111110111
S-a obtinut valoarea N
(2)
= 111110111 (503
(10)
).
x i
i 0
n
i
V x 2
* =
=

x -i
i 0
n
-i
V x 2
* =
=

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 x
0

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

x = ,x
-1
x
-2
... x
-n+1
x
-n

iar valoarea numrului
-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 = x
k
x
k-1
... x
1
x
0
,x
-1
x
-2
... x
-m

iar valoarea numrului
2 x 2 x V
i -
m
1 i
i -
i
k
0 i
i x
* *

= =
+ =
In continuare se va discuta reprezentarea numerelor in virgula fixa. Se considera un
numar x reprezentat in calculator pe n biti, sub forma:
unde x
s
reprezinta bitul de semn, 0 pentru numar pozitiv si 1 pentru numar
negativ, iar ceilalti biti reprezinta modulul numarului.
Reprezentarea in cod direct

Codul direct permite reprezentarea explicita a numerelor prin semn
si modul.

| |

<
>
=


0 ... 1
0 ... 0
0 1 3 2
0 1 3 2
x daca x x x x
x daca x x x x
x
n n
n n
d
Exemple. Sa se reprezinte in cod direct numerele x = 21 si y = -20 pe 6
biti.
[x]
d
= 010101
[y]
d
= 110100

| |

<
=
>
=


0 ... 1
111 ... 1111
0
000 ... 0000
0 ... 0
0 1 3 2
0 1 3 2
x daca x x x x
x daca sau
x daca x x x x
x
n n
n n
i
k
k
x x =1
| | 1 2 111 ... 1111 ... 1 ... 0
0 1 3 2
0 1 3 2
= = + = +


n
n n
n n i
x x x x x x x x x x
Reprezentarea in cod invers (sau in complement fata de 1)

unde
Se poate stabili o relatie importanta pentru numerele strict negative
reprezentate in cod invers. Astfel, daca x<0, atunci:
Exemple. Sa se reprezinte in cod invers numerele x = 21 si y = -20 pe
6 biti.

[x]
d
= [x]
i
= 010101

Reprezentarea numerelor pozitive in cod invers este identica cu
reprezentarea in cod direct. Numerele negative se reprezinta insa diferit.
Pentru y se scrie mai intai reprezentarea in cod direct, apoi se inverseaza (se
complementeaza fata de 1) fiecare bit al modulului.

[y]
d
= 110100
[y]
i
= 101011

Reprezentarea in cod complementar (in complement fata de 2)
unde, prin definitie,
x x x x x
n
n n
=

2
~ ~
...
~ ~
1
0 1 3 2
Se poate stabili o relatie importanta pentru reprezentarea numerelor negative in cod
complementar. Daca x<0. atunci:
Exemple. Sa se reprezinte in cod complementar numerele x = 21 si y = -20 pe 6 biti.
[x]
d
= [x]
i
= [x]
c
= 010101
Din nou, reprezentarea numerelor pozitive in cod complementar este identica cu reprezentarea
in cod direct. Pentru a obtine reprezentarea unui numar negativ in cod complementar, se scrie
mai intai numarul in cod direct, apoi se inverseaza bitii modulului pentru a obtine codul invers si
in final se aduna o unitate, in rangul cel mai putin semnificativ (c.m.p.s.), conform relatiei
stabilite mai sus.
[y]
d
= 110100
[y]
i
= 101011+
1

[y]
c
= 101100

Regula practica pentru scrierea codului complementar (numai pentru numerele negative !): se
parcurge reprezentarea numarului in cod direct de la dreapta spre stanga, se lasa toate zerourile
neschimbate pana la prima unitate, care de asemenea ramane neschimbata, iar apoi se
inverseaza toti ceilalti biti ai modulului.

Reprezentarea informaiei alfanumerice

Intr-un sistem de calcul o parte a informatiei prelucrate este nenumerica. Pentru
reprezentarea acesteia se utilizeaza diferite coduri, dintre care cel mai utilizat este codul ASCII
(American Standard Code for Information Interchange). Codul ASCII standard utilizeaza 7 biti
pentru reprezentarea literelor mari si mici ale alfabetului latin, cifrelor zecimale, caracterelor
speciale si a cateva caractere de control (in total 128 de caractere). Caracterele sunt grupate
astfel (codurile fiind furnizate in hexazecimal):
0-1Fh : caractere de control, ca LF (0Ah), CR (0Dh), BEL (07h),...;
20h-2Fh : caractere speciale, ca spatiu, !, , #, $,...;
30h-39h : cifrele zecimale 0(30h), 1(31h),...,9(39h);
3Ah-40h : caractere speciale :, ;, <, =, ...;
41h-5Ah : literele mari ale alfabetului A(41h), B(42h), ..., Z(5Ah);
5Bh-60h : caractere speciale [, \, ...;
61h-7Ah : literele mici ale alfabetului a(61h), b(62h), ..., z(7Ah);
7Bh-7Fh : caractere de control si speciale, cum sunt DEL(7Fh), {(7Bh), }(7Dh),...
Pe langa acest cod se utilizeaza si codul ASCII extins, in care caracterele sunt
reprezentate pe 8 biti (deci se reprezinta in total 256 de caractere).

S-ar putea să vă placă și