Documente Academic
Documente Profesional
Documente Cultură
ANEXA1 Memorarea Datelor
ANEXA1 Memorarea Datelor
1. Bit, octet
Orice calculator memoreaz informaiile n baza 2 (succesiune de 0 i 1).
Motivul? Componentele electronice au dou stri. Se face o convenie: dac o
component electronic se gsete ntr-una din stri, se consider c memoreaz
0, altfel memoreaz 1. Astfel am obinut unitatea elementar de memorare: bitul.
Un bit reine una din dou valori 0 sau 1.
Un octet este alctuit din 8 bii.
0 1 1 0 0 1 0 0
7
bitul 0 reine 0;
bitul 1 reine 0;
bitul 2 reine 1;
...
10
11
1
www.ls-infomat.ro | www.manuale-de-informatica.ro
10
11111
......
1111
de n ori
2
www.ls-infomat.ro | www.manuale-de-informatica.ro
Exemple
1. Un octet are 8 bii. Prin urmare, cel mai mare numr care poate fi
memorat este 28-1=256-1=255. Se pot memora 256 de numere (de la 0 la 255).
Fie numrul 62(10). l convertim n baza 16.
Avem: 62(10)=3E(16). Apoi n baza 2 (este mai uor aa, dect direct n baza
2): 00111110. Vom avea memorat:
00111110
Putem lsa rezultatul n hexa (pentru uurina citirii, nu pentru c numerele
se memoreaz n hexa).
3E
2. Doi octei consecutivi au 16 poziii binare. Cel mai mare numr care poate
fi reinut este 216-1=2828-1=256256-1=65536-1=65535. n concluzie, doi
octei consecutivi pot memora numere ntre 0 i 65535 (adic 65536 numere).
Relum exemplul (numrul 62). Vom avea:
00000000 00111110
00
3E
n acest fel, rmn n-1 poziii binare n care putem reprezenta numrul.
Dac numrul este pozitiv, l reprezentm n baza 2 (utiliznd cele n-1
poziii). Exemplu. Considerm c se utilizeaz un octet i dorim s memorm
numrul 70. Avem: 70(10)=46(16)=01000110(2). Numrul este memorat astfel:
01000110
3
www.ls-infomat.ro | www.manuale-de-informatica.ro
46
Dac folosim un octet, avem n=8, n-1=7, i cel mai mare numr care
poate fi reprezentat este 27-1=128-1=127.
Dac pentru reprezentare se folosesc 2 octei avem: n=16, n-1=15, cel
mai mare numr este 215-1=32768-1=32767.
Dac numrul este negativ procedm astfel:
70(10)=01000110(2);
Inversm cifrele: 10111001;
La valoarea obinut, se adun 1:
10111001
. 00000001
10111010
Aceasta este valoarea pe care o reprezentm:
10111010
Observm c primul bit reine 1, deci numrul este negativ. n concluzie,
bitul de semn ia valoarea care trebuie, respectnd algoritmul prezentat.
S notm cu z+ valoarea obinut pentru un numr pozitiv i cu z- valoarea
obinut pentru acelai numr, ns negativ. Avem: z++z-=2n
4
www.ls-infomat.ro | www.manuale-de-informatica.ro
Exemplu:
Avem:
01000110 +
10111010
100000000
100000000(2)=28 (reprezentarea s-a fcut pe 8 poziii binare).
Justificare. Cum a fost calculat z-? Mai nti au fost inversate cifrele 0 n 1 i
1 n 0, apoi s-a adunat 1. A aduna z+ cu z- este echivalent cu a face suma a 3
numere: z+, numrul inversat i 1. Dar suma primelor dou numere este
11...111 (de n ori). Dac adunm acesteia numrul 1 obinem 100...0 (de n
ori cifra 0), adic 2n.
Acum prezentm formula de conversie n cod complementar. Fie z un
numr ntreg - scris n binar. Vom nota cu z* valoarea sa n cod complementar,
scris pe n poziii binare.
z
z* n
2 z
pentru
pentru
z 0;
z 0.
03E8
1111110000010111
0000000000000001
1111110000011000
Reprezentm valoarea obinut n bazele 2 i 16.
1111110000011000
FC18
5
www.ls-infomat.ro | www.manuale-de-informatica.ro
1000:
10000
003E 8
0 FC18
Am artat faptul c prin utilizarea codului pe n poziii binare, cel mai mare
numr pozitiv care se poate reine este 2n-1-1. Dar care este cel mai mic numr
care poate fi reinut?
De la nceput observm c, pentru un numr negativ, prima poziie binar
este 1. Fie z+ valoarea obinut pentru un numr pozitiv i z- valoarea obinut
pentru acelai numr, ns negativ (z++z-=2n). Avem z-=2n-z+. Dac z ia cea mai
mare valoare posibil, z- o ia pe cea mai mic (desczutul este constant iar
scztorul este maxim, deci valoarea obinut este minim). Cea mai mare valoare
pentru z- este 2n-1-1. Atunci cea mai mic valoare pe care o ia z- este: 2n-(2n1
-1)=22n-1-2n-1+1=2n-1+1.
Pe de alt parte, n cod complementar exist posibilitatea s se rein
valoarea 10...0 (de n-1 ori 0). ntruct bitul de semn este 1, se memoreaz o
valoare negativ, pe care o complementm:
6
www.ls-infomat.ro | www.manuale-de-informatica.ro
Parte
semnificativ
a
1poziie
8 poziii
23 poziii
binar
binare
binare
Parte
semnificativa
Exponent
modificat
1poziie
8 poziii
55 poziii
binar
binare
binare
Avem:
a) S - semn. Bitul de semn este:
0, dac numrul este mai mare sau egal cu 0;
1, dac numrul este strict mai mic dect 0.
b). Exponent modificat. Este ntlnit n literatura de specialitate i sub
numele de caracteristic.
c). Parte semnificativ. Dup cum observai, numrul de bii n care se
memoreaz difer de la reprezentarea n virgul mobil simpl precizie la cea n
virgul mobil dubl precizie.
Etapele de reprezentare n virgul mobil a numerelor reale sunt
urmtoarele:
se
normalizeaz
0
,1
..........
.. (10)
exp
adic
se
scrie
baza
sub
forma
paete semnicativa
scrie de aa natur nct partea ntreag s fie 0, iar prima cifr a prii
zecimale s fie diferit de 0.
7
www.ls-infomat.ro | www.manuale-de-informatica.ro
Exemple
1. S se reprezinte n virgul mobil numrul 100,75.
a. Scriem numrul n baza 2:
100(10)=64(16)
0,75(10)=0,C(16)
100,75(10)=64,C(16)=1101000,11(2)
2. Se scrie numrul normalizat:
1101000,11(2)=0,110100011(10)111 -111 este numrul 7(10), adic
puterea lui 2.
3. Calculm exponentul modificat:
10000000
00000111
10000111
4. Bitul de semn reine 0.
Numrul memorat n virgul mobil simpl precizie este:
010000111
0000000000
1010001100
0000
1010001100
0000
8
www.ls-infomat.ro | www.manuale-de-informatica.ro
Avem 0(10)=0(2)
0,05(10)=0,00(0011)(2)
0,05(2) = 0,00(0011)(2)=0,0000110011001100111...
= 0,11001100...(10)-100.
Exponentul modificat este:
128(10)+(-4(10))=124(10)=7C(16)=01111100(2).
Partea semnificativ este: 10011001100.. (prima cifr 1 nu se reprezint).
Reprezentarea n virgul mobil simpl precizie este (bitul semn reine 0):
0 01111100
0110011001
1001100110
100
1 01111100
0110011001
1001100110
100
0,11....1 (10) ( 2 )
2 1012 7
1111111
9
www.ls-infomat.ro | www.manuale-de-informatica.ro
10000000
1 128 1 1
1
1
1
2
128 129 130 10 13
2
2 2
2
2
(2 )
1
1
1
39 0, 00000
........
01 0.
13
13
1024
(1000)
10
de 39 ori
Observaii !
S-a inut cont de faptul c bitul care reprezint prima cifr de dup virgul este,
implicit, 1 i nu se reprezint.
Exist mai multe standarde de reprezentare n virgul mobil. Ele difer prin
numrul de octei alocai pentru reprezentare, i / sau prin numrul de bii
folosii pentru reinerea exponentului modificat i numrul de bii folosii pentru
reinerea mantisei.
5. Memorarea caracterelor
Pentru memorarea caracterelor se folosete un cod special numit ASCII.
Fiecare caracter se memoreaz la nivelul unui octet, printr-un numr (evident ntre
0 i 255) dat de codul ASCII.
10
www.ls-infomat.ro | www.manuale-de-informatica.ro
Exemple:
Observaii!
Logica de codificare a caracterelor care reprezint litere mici sau mari este de
a acorda caracterelor coduri n ordine alfabetic (aceasta are implicaii uriae
n programare - este permis sortarea alfabetic);
Exerciii propuse
1. Cum se memoreaz pe 2 octei numerele naturale: 65, 76, 10000?
Dar 100000?
2. Cum se memoreaz pe un octet numerele ntregi -9, 9, 99, -99?
Dar 200?
3. Cum se memoreaz n virgul mobil simpl precizie numerele reale:
123,56, -123,56 +17890,89, -9875, 65464, -442278?
4. Se consider coninuturile a patru octei consecutivi n hexa: 1AB9C135.
Ce numere sunt reprezentate?
11
www.ls-infomat.ro | www.manuale-de-informatica.ro