Sunteți pe pagina 1din 6

1.2.4.

Pe scurt despre reprezentarea intern a datelor


Calculatoarele electronice lucreaz cu date i programe reprezentate n sistemul binar, adic
utilizeaz numai cifrele binare 0 i 1. Datele numerice pot avea o reprezentare algebric, iar
datele nenumerice i programele vor utiliza anumite coduri de reprezentare intern. Pentru
fixarea principiilor de reprezentare a datelor n calculatoarele electronice, vom prezenta mai nti
cteva aspecte privind sistemul de numeraie binar i apoi vom expune succint o parte din
codurile de reprezentare.
Un sistem de numeraie desemneaz totalitatea regulilor de reprezentare a numerelor folosind
anumite simboluri numite cifre.
ntr-un sistem de numeraie poziional orice numr poate fi scris n formatul:
N

n 1

i m

b
ai
n
m
an-1
a-m

bi

n care,

baza sistemului de numeraie


cifrele sistemului de numeraie
numrul de cifre de la partea ntreag
numrul de cifre de la partea fracionar
cifra cea mai semnificativ
cifra cea mai puin semnificativ

Tabelul nr. 1. 1. Sisteme de numeraie


Sistemul zecimal
(b=10)

Sistemul binar
(b=2)
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

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

Sistemul octal
(b=8)

Sistemul hexazecimal
(b=16)
0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
20

0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
10

Pentru studiul reprezentrii datelor n sistemul electronic de calcul ne-am oprit la urmtoarele
sisteme de numeraie: zecimal, binar, octal i hexazecimal (vezi tabelul nr. 1.7). Reprezentarea
intern a datelor folosete cifrele sistemului binar 0 i 1. Sistemul zecimal este sistemul de
numeraie n care lucrm n mod curent. Sistemele octal i hexazecimal sunt sisteme
intermediare utilizate n anumite coduri de reprezentare.
Reprezentri algebrice ale datelor
Avnd n vedere structura memoriei interne, reprezentarea numerelor ntregi, n exemplificrile
noastre, ia n considerare un multiplu de 8 bii.
Reprezentarea prin mrime i semn
Orice numr, N, se reprezint dup formula:

n 1

N a n 2 n ai 2 i
i 0

an={0,1}

n reprezentarea prin mrime i semn se reprezint separat semnul numrului (S) i separat
mrimea (M). Din aceast cauz este necesar o cifr suplimentar (an).

Pentru semnul plus (+) se folosete cifra 0, iar pentru semnul minus (-) cifra 1. Deci, pentru
reprezentarea unui numr cu n cifre se folosesc n+1 cifre binare, prima cifr binar fiind semnul.
este reprezentarea numrului +13
este reprezentarea numrului 13

Exemple:

Reprezentarea prin complement fa de 2 sau complement fa de 1


Fie un numr, N, scris ntr-o baz oarecare. Complementul su se definete astfel:
N (b) bn N (b) ,

complement fa de b

N (b) bn N (b) b m ,

complement fa de b-1

Se observ c dac n este numrul de cifre din partea ntreag, atunci pentru reprezentarea
complementului sunt necesare n+1 cifre deoarece bn este baza urmat de n zerouri.
Dac baza (b) este 2, discutm despre reprezentarea prin complement fa de 2 (cod
complementar sau binar), respectiv prin complement fa de 1 (cod invers).
Reprezentarea n cod complementar pentru un numr cu n cifre necesit n+1 poziii binare,
deoarece prima poziie este rezervat pentru semnul numrului. Astfel, se face convenia c toate
numerele care ncep cu zero (0) sunt pozitive i toate numerele care ncep cu unu (1) sunt
negative. Deci numerele pozitive se reprezint prin ele nsele, iar numerele negative prin
complementul lor. Relaiile dup care se face reprezentarea sunt prezentate mai jos:
n 1

N 0 2 ai 2i ,
n

pentru N0

i 0

n 1 _

N 1 2 n a i 2i 1 ,

pentru N<0

i 0

unde a 1 ai .
Intervalul de reprezentare al numerelor pe n poziii binare (n fiind multiplu de 8) este:
[2n1, 2n1 1].

Deci

pentru n=8

intervalul de reprezentare este: [-128, 127]

pentru n=16

intervalul de reprezentare este: [-32768, +32767]

pentru n=32

intervalul de reprezentare este: [-2147483648, 2147483647]

Exemple:

este reprezentarea numrului +13

este reprezentarea numrului 13

Codul complementar este soluia adoptat de majoritatea calculatoarelor electronice moderne.

Reprezentarea n cod invers are la baz relaiile:


n 1

N 0 2 ai 2i , pentru N0
n

i 0

n 1 _

N 1 2 n a i 2i , pentru N<0
i 0

Exemple:

este reprezentarea numrului +13


este reprezentarea numrului 13

Reprezentarea numerelor reale


Numerele reale pot fi reprezentate n virgul fix sau n virgul mobil.
Reprezentarea numerelor reale n virgul fix
Dac n relaiile anterior descrise se ia n considerare i partea fracionar, respectiv m0,
ajungem la reprezentarea numerelor reale.
Singura deosebire este faptul c marca zecimal nu are un spaiu fizic pentru reprezentare, ci este
virtual, considerndu-se aprioric ntr-o poziie determinat, n funcie de care se face cadrarea
numrului, operndu-se apoi cu factori de scar. n formatul de reprezentare se rezerv o poziie
pentru semn (S), urmtoarele poziii pentru partea ntreag (I), iar ultimele poziii pentru partea
fracionar (F).
Exemplu:

reprezint +7,9375

De fapt, este cel mai mare numr real ce poate fi reprezentat pe un octet, n virgul fix, dac
marca zecimal este plasat la mijloc.
reprezint -8,0000
Acesta este cel mai mic numr real reprezentat pe un octet, n virgul fix, dac marca zecimal
este plasat la mijloc.
Reprezentarea numerelor reale n virgul mobil
Pentru numerele foarte mari, respectiv foarte mici, se opereaz cu formatul de reprezentare n
virgul mobil.
Orice numr N se poate scrie n formatul:

N M b E
Dac M<1 i prima cifr de dup virgul este diferit de zero, atunci se spune c mantisa (M)
este normalizat. Pentru reprezentare se va utiliza doar mantisa normalizat (M) i exponentul
(E), cu semnele corespunztoare (SE, SM), dup modelul de mai jos:

Pentru a nu gestiona separat semnul mantisei i semnul exponentului s-a introdus noiunea de
caracteristic (C). Caracteristica este un numr ntreg i pozitiv, reprezentat pe 7 bii (C [0,
127]) definit dup relaia C=E+64. Deci n virgul mobil numrul se scrie dup urmtorul
format:

N=MbC-64

iar reprezentarea este:

Att mantisa ct i caracteristica se reprezint n cod complementar innd seama c, la aliniere,


mantisa este subunitar iar caracteristica este un numr ntreg. Dac pentru mantis se rezerv 3
octei, reprezentarea se numete n virgul mobil precizie simpl (VMPS), iar dac se rezerv 7
octei, reprezentarea se numete n virgul mobil precizie dubl (VMPD).
Exemple:

0 1001011 11111010 10100000 00000000

reprezint +2005

1 0110100 00000101 01100000 00000000

reprezint -2005

Standardele IEEE (Institute of Electrical and Electronic Engineers) prezint patru formate de
reprezentare a numerelor reale n virgul mobil: virgula mobil precizie simpl (4 octei),
virgul mobil precizie dubl (8 octei), virgul mobil precizie extins (12 octei) i virgul
mobil precizie quadrupl (16 octei).
Coduri de reprezentare intern a datelor
Reprezentarea datelor n calculatoarele numerice se realizeaz prin succesiuni de cifre binare. n
aplicaiile economice i de alt natur se vehiculeaz date i informaii exprimate prin cifre
zecimale sau litere ale unui anumit alfabet etc.
n acest context este necesar ca datele externe s fie transformate ntr-o form accesibil
calculatorului. Operaiunea se realizeaz prin codurile de reprezentare intern a datelor n care
fiecrui caracter extern i se atribuie o secven de cifre binare, indiferent de forma extern i de
semnificaie. La ieirea din sistemul de calcul se aplic un proces de decodificare prin care se
revine la formatul extern al datelor.
Operaiunea de codificare poate fi definit astfel:
Fie dou mulimi A, B. A codifica elementele mulimii A prin elementele mulimii B nseamn a
face s corespund fiecrui element aA o secven de elemente bB.
Codurile de reprezentare intern a datelor trebuie s asigure nu numai simpla conversie din
forma extern n forma intern, ci i posibiliti de gestionare facil n operaiuni logice i de
calcul, precum i protecia mpotriva perturbaiilor accidentale. Dup natura elementelor
mulimii de codificat (A), codurile pot fi numerice sau alfanumerice.
Codurile numerice reprezint cele 10 cifre zecimale. Codurile alfanumerice au n vedere cifrele
zecimale, literele alfabetului (mari i mici), semnele de punctuaie i unele secvene de comand
sau control.
Codurile numerice pot fi coduri ponderate sau neponderate. La codurile ponderate, fiecrei cifre
zecimale i se asociaz o secven de cifre binare n care fiecare rang are o anumit pondere (vezi
3

N ai q i

0
tabelul nr. 1.8). Deci fiecare cifr zecimal se exprim dup relaia
, n care ai 1,0
i qi este ponderea. Cele mai utilizate coduri ponderate sunt prezentate n tabelul nr. 1.8.

Codul 8421 (binar-zecimal) are ca ponderi puterile lui 2 (23, 22, 21, 20). Fiecare tetrad binar
reprezint exprimarea unei cifre zecimale n sistemul de numeraie binar. Codul 2421 se
caracterizeaz prin utilizarea ponderii 2 n dou poziii din tetrad. Primele cinci numere au n
poziia nti 0, iar urmtoarele cinci numere au n poziia nti 1. La codul 5421 cifrele zecimale
5-9 se deosebesc de cifrele zecimale 0-4 numai prin prima poziie.
Codurile numerice neponderate asociaz fiecrei cifre zecimale o secven binar dup alt
regul dect cea a ponderilor (vezi tabelul nr. 1.9).

Codul EXCES 3 se obine din codul 8421 prin adunarea la fiecare tetrad a cifrei 3 n binar
(0011). Cifrei 0 i corespunde o secven de bii semnificativi. Acest lucru permite a se face
distincie ntre o locaie de memorie liber i o locaie care nmagazineaz cifra 0. Este un cod
autocomplementar.
Tabelul nr. 1. 2. Coduri numerice ponderate
Cifra zecimal
0
1
2
3
4
5
6
7
8
9

Codul 8421
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001

Codul 2421
0000
0001
0010
0011
0100
1011
1100
1101
1110
1111

Codul 5421
0000
0001
0010
0011
0100
1000
1001
1010
1011
1100

Codul 7421
0000
0001
0010
0011
0100
0101
0110
1000
1001
1010

Codul 642-1
0000
0011
0010
0101
0100
0111
1000
1011
1010
1101

Codul 2 din 5 utilizeaz pentru codificarea cifrelor zecimale 5 poziii binare din care 2 cifre sunt
semnificative (au valoarea 1).
Codul GRAY se caracterizeaz prin faptul c trecerea de la o cifr zecimal la alta se face prin
modificarea unui singur rang binar din tetrad.
Codurile alfanumerice utilizeaz, de obicei, 6, 7, 8 sau 16 bii.
Tabelul nr. 1. 3. Coduri numerice neponderate
Cifra zecimal
0
1
2
3
4
5
6
7
8
9

Codul EXCES 3
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100

Codul GRAY
0000
0001
0011
0010
0110
0111
0101
0100
1100
1101

Codul 2 din 5
00011
00101
00110
01001
01010
01100
10001
10010
10100
11000

Codul EBCDIC (Extended Binary Coded Decimal Interchange Code) este pe 8 bii i poate
reprezenta maxim 256 de semne. Dei a cunoscut o larg rspndire, nu este standardizat.
n acest cod cele 10 cifre zecimale sunt reprezentate, n primii 4 bii invariabil prin 1111 (n
hexazecimal F), iar urmtorii 4 bii arat cifra n succesiunea respectiv.
Literele mari ale alfabetului latin sunt mprite n 3 grupuri:

de la A la I, la care primii 4 bii sunt, invariabil, 1100 (n hexazecimal C);


de la J la R, la care primii 4 bii sunt, invariabil, 1101 (n hexazecimal D);
de la S la Z, la care primii 4 bii sunt, invariabil, 1110 (n hexazecimal E).

Tabelul nr. 1. 4. Exemple de coduri EBCDIC i ASCII


EBCDIC
Caracterul extern
0
1
2
3
...
8
9
A
B

n binar
1111 0000
1111 0001
1111 0010
1111 0011
...
1111 1000
1111 1001
1100 0001
1100 0010

ASCII
n hexazecimal
F10
F1
F2
F3
...
F8
F9
C1
C2

n binar
0110000
0110001
0110010
0110011
0111000
0111001
1000001
1000010

n octal
60
61
62
63
...
70
71
101
102

...
H
I
J
K
...
R
S
...
Z
spaiu
+
...

...
1100 1000
1100 1001
1101 0001
1101 0010
...
1101 1001
1110 0010
...
1110 1001
0100 0000
0100 1110
...

...
C8
C9
D1
D2
...
D9
E2
...
E9
40
4E
...

1001000
1001001
1001010
1001011
1010010
1010011
1011010
0100000

...
110
111
112
113
...
122
123
...
132
40

Codul ASCII (American Standard Code for Information Interchange) se ntlnete n dou
variante: cu 7, respectiv 8 bii. Codul ASCII cu 7 bii este standardizat i recomandat de ISO
(International Standards Organisation), organism specializat al Organizaiei Naiunilor Unite.
Codul UNICODE este un cod alfanumeric pe 16 bii care tinde s nlocuiasc codurile pe 8 bii.
Astfel, codul ASCII devine un subset al UNICODE. UNICODE a aprut odat cu tendina de
globalizare a sistemelor informatice, permind codificarea n orice combinaie de limbi a peste
65000 de caractere unice (tabelul nr. 1.11).
Tabelul nr. 1. 5. Exemple de caractere UNICODE
Reprezentare UNICODE
\U0030 - \U0039
\U0660 - \U0669
\U0670 - \U0679
\U0966 - \U0967
.
.
.
\U0024
\U0041 - \U005a
\U0057
\U0061 - \U0070
.
\U4e000 - \U9fff

Corespondent ASCII
09

$
AZ
_
az

Explicaii
cifre ISO-LATIN-1
cifre Arabic-Indic
Cifre Eastern Arabic-Indic
cifre Davanagari

litere mari LATIN


liniua de subliniere
litere mici LATIN
Han (chinez, japonez, coreean)

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