Sunteți pe pagina 1din 0

2.

CODURI


Prin codificare se realizeaz o schimbare a formei de exprimare a unei
informaii. Dac X = { x
1
, , x
p
} este mulimea simbolurilor primare care urmeaz a
fi codificate prin intermediul unor simboluri elementare aparinnd unei mulimi de
elemente B = { b
1
, , b
n
}, prin codificare se asociaz fiecrui element x
i
X o
secven de simboluri b
j
B astfel nct modelul de codificare va fi reprezentat de
corespondena biunivoc:

p 1 3 1 p
s 7 6 5 2 2
1 3 2 1 1
s b b b x
s b b b b x
s b b b x
=
=
=
L
(2.1)

Cuvintele de cod formeaz o mulime S = { s
1
,, s
p
}. Codificarea este o
aplicaie de forma f : X S. Codul se numete uniform dac toate cuvintele s
i
S
au aceeai lungime.
n electronica digital, B = { 0, 1 }, deci cuvintele mulimii S sunt cuvinte
binare de o anumit lungime, n general 8 (octet sau byte), 16, 24, 32 sau 64 de bii.
Informaia primar poate fi compus numai din simboluri numerice, sau att
din simboluri numerice, ct i simboluri literale i semne de ortografie. Se obin astfel
dou tipuri de coduri: coduri numerice, respectiv coduri alfanumerice.
Exemple de coduri numerice sunt codurile: binar, octal, hexazecimal, zecimal
codat binar (BCD- Binary Coded Decimal) etc. Exemple de coduri alfanumerice sunt:
ASCII (American Standard Code for Information Interchange) i EBCDIC (Extended
Binary Coded Decimal Interchange Code).


2.1 Coduri numerice

Prin intermediul cuvintelor binare se pot codifica numere din sistemele de
numeraie binar, zecimal, octal, hexazecimal etc., rezultnd coduri binare, zecimal -
binare, octal - binare, hexazecimal - binare etc.


2.1.1 Coduri binare

I. Reprezentarea numerelor fr semn

Corespondena ntre un numr binar i un cuvnt de cod binar poate fi chiar
identitate, deci cuvntul de cod este chiar numrul respectiv.
19
cap.2 Coduri


x = b
n-1
b
1
b
0
, b
-1
b
-m
(2.2)


Virgula nu se reprezint fizic, dar utilizatorul trebuie s tie ntre ce bii ai
cuvntului este localizat. Gama numerelor reprezentate este x = [ 0 , 2
n
- 2
-m
].

n multe cazuri, numerele din acest domeniu se scaleaz prin mprire la 2
n
;
virgula binar va fi poziionat n faa bitului cel mai semnificativ, iar gama
reprezentabil va deveni: x [0 ,1-2
-n-m
]. Aceste reprezentri se numesc numere
fracionare n virgul fix.

II. Reprezentarea numerelor cu semn

Prin convenie, + se reprezint prin 0, iar - prin 1. Din cei n bii folosii
pentru partea ntreag, primul (bitul b
n-1
) va fi folosit pentru reprezentarea semnului.
Exist trei forme uzuale pentru reprezentarea numerelor cu semn, forme
descrise n continuare.

a) cod direct (n modul i semn)

<

=

0 x , x 2
0 x , x
x
1 n
d

m 1 0 1 2 n
b ... b , b b ... b x

= (2.3)

Gama de reprezentare: x[-( 2
n-1
- 2
-m
), 2
n-1
- 2
-m
]. Prin scalare (mprire la 2
n-1
),
virgula se va situa imediat dup bitul de semn, iar gama de reprezentare va deveni:
x[-(1-2
-(n-1)-m
) , (1-2
-(n-1)-m
)].

b) cod invers (n complement fa de 1)

< +

=

0 x , 2 x 2
0 x , x
x
m n
i

m 1 0 1 2 n
b ... b , b b ... b x

= (2.4)

Regula de inversare a unui numr negativ este urmtoarea: se complementeaz toi
biii din reprezentarea n valoare absolut i se ataeaz 1 n rangul semn:


m 1 0 1 2 n i
b ... b , b b ... b 1 x

= ,
i i
b 1 = b pentru x < 0 (2.5)

Gama de reprezentare: x[-( 2
n-1
- 2
-m
), 2
n-1
- 2
-m
]. Prin scalare gama de reprezentare
va fi: x[-(1-2
-(n-1)-m
), (1-2
-(n-1)-m
)].

c) cod complementar fa de 2

< +

=
0 x , x 2
0 x , x
x
n
c

m 1 0 1 2 n
b ... b , b b ... b x

= (2.6)

Regula de complementare a unui numr negativ este urmtoarea: se
inverseaz cifrele binare ale numrului n valoare absolut, se sumeaz valoarea 1
la rangul -m i se ataeaz 1 n rangul semn:

20
BAZELE PROIECTRII CIRCUITELOR NUMERICE
43 42 1
m
m 1 0 1 2 n c
1 ... 00 , 0 b ... b , b b ... b 1 x + =

(2.7)

O alt regul de complementare este i cea care urmeaz: codul
complementar al unui numr negativ se obine prin inversarea biilor din
reprezentarea n valoare absolut ncepnd cu primul bit 1 (exclusiv) ntlnit prin
parcurgerea numrului de la dreapta la stnga, atandu-se apoi 1 n rangul semn.
Gama de reprezentare este x[-2
n-1
, 2
n-1
- 2
-m
] iar prin scalare gama de
reprezentare va fi: x[-1, 1-2
-(n-1)-m
].

Exemple:
x = -1011,1100
x
d
= 11011,1100
x
i
= 10100,0011
x
c
= 10100,0100

Toate codificrile scalate, cu virgula binar situat imediat dup bitul de semn,
se numesc reprezentri n virgul fix.

III. Reprezentarea numerelor n virgul flotant

Un numr raional x se reprezint prin dou numere binare:

x = M 2
E
, (2.8)

unde: M - mantis (numr fracionar cu semn; m bii)
E - exponent (numr ntreg cu semn; n bii)

Dac m are numai parte fracionar, gama de reprezentare este:
) 2 , 2 ( x
) 1 2 ( ) 1 2 (
1 n 1 n



unde s-a presupus E reprezentat n complement fa de 2.

Pentru mrirea preciziei calculelor, mantisa se normeaz dup fiecare
operaie aritmetic, astfel nct cifra binar de dup virgul a modulului mantisei s
fie nenul.

Exemplu:
0,001011 2
10
= 0,1011 2
8
.


2.1.2 Coduri zecimal - binare

n cadrul acestei clase, X = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }. Mulimea S trebuie s
conin 10 cuvinte distincte, deci pentru codificare sunt necesari minimum 4 bii
(2
3
<10<2
4
). Cu aceti 4 bii se pot forma 16 cuvinte de cod distincte, deci exist
posibiliti de codificare. n practic se folosesc anumite variante, cele mai importante
fiind prezentate n continuare.
10
16
A

21
cap.2 Coduri

I. Coduri ponderate

Un cod ponderat asociaz fiecrei cifre zecimale o tetrad binar, ponderea
fiecrui bit din tetrad fiind egal cu valoarea cifrei din denumirea codului.
Fie X {0, 1, . , 9} i z
(x)
= (y
3
y
2
y
1
y
0
)
(2)
. Fiecrei cifre binare (bit) y
j
, 3 , 0 j = ,
i se ataeaz o pondere p
j
astfel nct: .
k
3
0 k
k
p y x

=
=
Cteva coduri ponderate sunt prezentate n tabelul 2.1.
n codul 8421, cuvintele de cod sunt numere succesive n sistemul binar
natural i din acest motiv, codul se mai numete cod zecimal-binar natural (NBCD)
Codurile 2421 i 4221 au pentru primele 4 cifre zecimale aceeai exprimare
ca i codul 8421. Codul pentru 5 se obine inversnd codul pentru 4; la fel se obine 6
din 3, 7 din 2, 8 din 1 i 9 din 0. Codurile cu aceast proprietate se numesc coduri
autocomplementare.

8421 2421 4221 7421
0 0000 0000 0000 0000
1 0001 0001 0001 0001
2 0010 0010 0010 0010
3 0011 0011 0011 0011
4 0100 0100 0110 0100
5 0101 1011 1001 0101
6 0110 1100 1100 0110
7 0111 1101 1101 0111
8 1000 1110 1110 1001
9 1001 1111 1111 1010












Figura 2.1 Coduri ponderate

II. Coduri neponderate

Exemple de coduri neponderate sunt:
- codul binar reflectat
- codul 8421 cu bit de paritate
- codul exces 3
- codul 2 din 5

Codul binar reflectat se obine se obine prin reflectri repetate a codurilor
pe n-1 ranguri, adugnd bii 0 ntr-unul din domenii i bii 1 n cellalt domeniu (cele
2 domenii sunt separate prin planul de oglindire). Exemple de coduri binar reflectate
sunt codul Gray i codul Gray nchis.

Codul Gray prezint proprietatea de adiacen: trecerea de la o cifr zecimal
la urmtoarea se face prin modificarea unui singur bit din cuvntul de cod. Acest cod
este util n cazul mrimilor ce cresc succesiv.
n mediile puternic influenate de zgomot, verificarea transmiterii corecte a
informaiilor se face prin folosirea codurilor detectoare de erori. n codul 8421 cu bit
de paritate, fiecare cuvnt de cod are un numr par sau impar de bii 1. La emisie se
adaug un bit 1 sau un bit 0 astfel nct numrul de bii 1 s fie par sau impar. La
22
BAZELE PROIECTRII CIRCUITELOR NUMERICE
recepie se numr biii 1, numrul acestora putnd indica dac au aprut erori
constnd n modificarea unui numr impar de bii din structura cuvntului binar.
Codul exces 3 se obine din codul 8421 la care se adun 3 = 0011. n acest fel
se poate face distincie ntre 0 i lipsa informaiei (zero este codificat prin 0011 i nu
prin 0000, fiind numit uneori zero viu).
Codul 2 din 5 se caracterizeaz printr-un cuvnt de cod de 5 bii, din care
numai doi bii sunt 1. Se realizeaz astfel o unicitate a reprezentrii deoarece numai
10 din cele 32 de configuraii posibile pe 5 bii satisfac aceast condiie. Prin folosirea
acestui cod se pot detecta erorile multiple aprute la transmiterea informaiei.
Principalele coduri neponderate sunt prezentate n tabelul din figura 2.2.
Alte tipuri de coduri sunt codurile detectoare de erori i codurile corectoare de
erori, care, pe lng detecia erorilor asigur i corectarea lor.


Binar
reflectat

Gray
Gray
nchis
8421
cu paritate
impar

exces3

2 din 5
0 0000 0000 0010 00000 0011 00011
1 0001 0001 0110 10001 0100 00101
2 0011 0011 0111 10010 0101 00110
3 0010 0010 0101 00011 0110 01001
4 0110 0110 0100 00100 0111 01010
5 0111 0111 1100 00101 1000 01100
6 0101 0101 1101 00110 1001 10001
7 0100 0100 1111 10111 1010 10010
8 1100 1100 1110 11000 1011 10100
9 1101 1101 1010 01001 1100 11000
10 1111
11 1110
12 1010
13 1011
14 1001
15 1000



















Figura 2.2 Coduri neponderate


2.1.3 Coduri ponderate particulare

Codul ponderat 8421 este cel mai rspndit fiind particularizat pentru
reprezentarea cifrelor in diverse baze de numeraie. Deoarece fiecare bit are
ponderea numrului n binar i cuvintele de cod sunt chiar numerele succesive n
sistemul binar natural, acest cod se mai numete cod zecimal binar natural (NBCD,
Natural Binary Coded Decimal). El cuprinde cifrele binare de la 0 la 10. Atunci cnd
codific toate combinaiile binare pe 4 bii este numit cod BCD (Binary Coded
Decimal).
n funcie de baza de numeraie a numrului care trebuie codificat putem avea
i alte tipuri de coduri (octal-binar, hexazecimal-binar).
Tabelul din figura 2.3 prezint principalele coduri binare uzuale.

23
cap.2 Coduri

24
Codul octal-binar realizeaz corespondena biunivoc ntre cifrele sistemului
de numeraie n baza 8 i triadele binare succesive.
Codul hexazecimal - binar realizeaz corespondena biunivoc ntre cifrele
sistemului de numeraie n baza 16 i tetradele binare succesive corespunztoare.


Numr
zecimal
BCD NBCD octal hexa
0 0000 0000 0000 0
1 0001 0001 0001 1
2 0010 0010 0010 2
3 0011 0011 0011 3
4 0100 0100 0100 4
5 0101 0101 0101 5
6 0110 0110 0110 6
7 0111 0111 0111 7
8 1000 1000 8
9 1001 1001 9
10 1010 A
11 1011 B
12 1100 C
13 1101 D
14 1110 E
15 1111 F



















Figura 2.3 Coduri binare uzuale


2.2 Coduri alfanumerice

n cazul acestor coduri, mulimea X a informaiilor primare este format din
cifre, litere, semne ortografice, comenzi speciale, denumite n general caractere.
Codificarea datelor alfanumerice este necesar pentru vehicularea diferitelor mesaje.
Trebuie codificate minim 88 caractere distincte (2 x 6 litere, 10 cifre, 26 de caractere
speciale), deci sunt necesari minimum 7 bii.
Cel mai rspndit cod alfanumeric este codul ASCII (American Standard Code
for Information Interchange).
Codul ASCII codific 128 de caractere (cele 52 de litere, majuscule i
minuscule, ale alfabetului englez, cele 10 cifre zecimale, caractere speciale i
caractere de comand).
Codul EBCDIC (Extended Binary Coded Decimal Interchange Code) codific
136 de caractere. Exist caractere ASCII care nu au corespondent EBCDIC i invers.
Codul ASCII, datorit succesiunii caracterelor majuscule i minuscule, poate fi
utilizat pentru ordonri alfabetice.

Exemplu:
Caracterul ? n ASCII are codul 3F iar n EBCDIC are codul 6F. Deasemenea,
caracterele 0, A, a au reprezentrile ASCII 30, 41, 61 iar cele EBCDIC F0, C1,
81.

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