Sunteți pe pagina 1din 11

1

www.l s- i nf omat .ro | www.manual e- de- i nf ormat i ca.ro


M em o r ar ea d at el o r
au t o r : T u d o r So r i n
1 . Bi t , oct e t
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.




n figura de mai sus este reprezentat un octet. Acesta reine valoarea
01100100. Mai simplu, putem nota n hexa valoarea reinut: 64. Observm i
faptul c biii care alctuiesc un octet sunt numerotai (de la 0 la 7).
Astfel:
- bitul 0 reine 0;
- bitul 1 reine 0;
- bitul 2 reine 1;
- . . .
Memoria intern poate fi privit ca o succesiune de octei. Pentru a-i distinge,
acetia sunt numerotai. Numrul de ordine al unui octet constituie adresa sa.
Adresele sunt date n binar, dar pentru a le putea scrie cu uurin folosim baza 16.


Octetul este cea mai mic unitate de memorie direct adresabil.
Adresarea unui octet se face prin numrul su de ordine, numit adres.
0 1 2 3 F 10 11
1 1
0 1 0 0 0 0
0 1 2 3 4 5 6 7


2
www.l s- i nf omat .ro | www.manual e- de- i nf ormat i ca.ro

S nu se fac confuzie ntre adresa unui octet i coninutul su. De exemplu,
octetul cu adresa FFFF reine valoarea hexa 3B.

Desigur, prin ci indirecte se poate accesa i bitul (chiar i n Turbo Pascal,
dup cum vom vedea). Aceasta nu nseamn c bitul este direct adresabil.
Numrul de octei ai memoriei interne d capacitatea de memorare a acesteia.
Pentru uurina exprimrii capacitii de memorare au fost introduse urmtoarele
uniti de msur:
- Kb (Kilobyte) - 1 Kb=2
10
octei (bytes);
- Mb (Megabyte) - 1Mb=2
10
Kb;
- Gb (Gigabyte) - 1Gb=2
10
Mb.
Astfel exist calculatoare cu o memorie intern de 4Mb, 8Mb, 16Mb, 32Mb,
etc. Evident, este de preferat ca un calculator s dispun de ct mai mult
memorie intern.
2. Memorarea numerelor naturale
Numerele naturale se memoreaz n binar. Pentru memorare, se utilizeaz
unul sau mai muli octei consecutivi. Problema este urmtoarea: care este cel mai
mare numr care se poate memora n n poziii binare consecutive? Evident, fiecare
poziie binar trebuie s fie 1. Avem:

ori n de
1111 ...... 11111
Acesta este un numr binar care convertit n baza 10 este:
2
n-1
+2
n-2
+2
n-3
+...+2
2
+2+1.
Acum vom aplica o formul i anume:
x
n
-1=(x-1)(x
n-1
+x
n-2
+x
n-3
+...+x
2
+x+1)
Prob:(x-1)(x
n-1
+x
n-2
+x
n-3
+...+x
2
+x+1)=x
n
+x
n-1
+x
n-2
+...+x
2
+x-
-x
n-1
-x
n-2
-x
n-3
+...-.x
2
-x-1=x
n
-1
Aplicnd formula de mai sus numrului convertit n baza 10 avem:
2
n-1
+2
n-2
+2
n-3
+...+2
2
+2+1=
(2-1)(2
n-1
+2
n-2
+2
n-3
+...+2
2
+2+1)=2
n
-1
Prin urmare, cel mai mare numr natural care poate fi memorat n n poziii
binare este 2
n
-1.
FFFF
3B


3
www.l s- i nf omat .ro | www.manual e- de- i nf ormat i ca.ro

Exemple
1. Un octet are 8 bii. Prin urmare, cel mai mare numr care poate fi
memorat este 2
8
-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:

Putem lsa rezultatul n hexa (pentru uurina citirii, nu pentru c numerele
se memoreaz n hexa).

2. Doi octei consecutivi au 16 poziii binare. Cel mai mare numr care poate
fi reinut este 2
16
-1=2
8
2
8
-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:



3 . M e m o r a r e a n um e r e l o r n t r e g i
Acestea pot fi i negative. Exemple: 123, -123, 0, 25 etc. Pentru
memorarea lor se utilizeaz codul complementar. S vedem cum. Pentru
memorare se utilizeaz unul sau mai muli octei. Prin urmare, numrul n, al
poziiilor binare care rein numrul, este multiplu de 8 (numrul de bii pe care I are
un octet).
Din cele n poziii binare una este rezervat pentru semn. Aceasta reine:
- 0, dac numrul este pozitiv;
- 1, dac numrul este negativ.
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
00111110
3E
00111110 00000000
3E 00


4
www.l s- i nf omat .ro | www.manual e- de- i nf ormat i ca.ro

Pe scurt, vom nota (n baza 16):

Acelai numr, reprezentat pe doi octei arat ca mai jos:



Observm c primul bit (indiferent de numrul de octei folosit pentru
reprezentare) are valoarea 0. innd cont de faptul c pentru rezervare se folosesc
n-1 poziii binare, cel mai mare numr care poate fi reprezentat este 2
n-1
-1.
Exemple:
- Dac folosim un octet, avem n=8, n-1=7, i cel mai mare numr care
poate fi reprezentat este 2
7
-1=128-1=127.
- Dac pentru reprezentare se folosesc 2 octei avem: n=16, n-1=15, cel
mai mare numr este 2
15
-1=32768-1=32767.
Dac numrul este negativ procedm astfel:
- reprezentm n baza 2 numrul cu semn schimbat, adic numrul pozitiv.
- valoarea memorat se obine schimbnd toate cifrele 1 n 0 i toate cifrele
0 n 1 i adunnd 1 (se numete complement fa de 2 - vedem imediat de
ce).
Exemplu: reprezentm pe un octet numrul -70
70
(10)
=01000110
(2)
;
Inversm cifrele: 10111001;
La valoarea obinut, se adun 1:
.
10111010
00000001
10111001+

Aceasta este valoarea pe care o reprezentm:

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
-
=2
n

46
01000110 00000000
46 00
10111010


5
www.l s- i nf omat .ro | www.manual e- de- i nf ormat i ca.ro

Exemplu: 70
(10)
se reprezint prin 01000110;
-70
(10)
se reprezint prin 10111010.
Avem:
01000110 +
10111010
100000000

100000000
(2)
=2
8
(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 2
n
.
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 pentru z
z pentru z
n
*
;
.
=
>
<

0
2 0

Exemplu. S se reprezinte pe 16 poziii binare numerele 1000. Convertim
1000 n baza 16 (este mai uor aa). 1000
(10)
=3E8
(16)
. Se convertete valoarea
obinut n baza 2. 3E8
(16)
=1111101000. Reprezentm pe 16 poziii binare
rezultatul obinut:


Acum reprezentm -1000. Considerm reprezentarea numrului 1000:
0000001111101000. Inversm cifrele: 1111110000010111. Adunm 1:
1111110000010111
0000000000000001
1111110000011000
+

Reprezentm valoarea obinut n bazele 2 i 16.



0000001111101000
1111110000011000
03E8
FC18


6
www.l s- i nf omat .ro | www.manual e- de- i nf ormat i ca.ro

Este mai uor s aplicm formula de trecere n cod complementar, dar
lucrnd n baza 16. Astfel 2
16
=10000
(16)
.

10000
003 8
0 18

E
FC

Am artat faptul c prin utilizarea codului pe n poziii binare, cel mai mare
numr pozitiv care se poate reine este 2
n-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
-
=2
n
). Avem z
-
=2
n
-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 2
n-1
-1. Atunci cea mai mic valoare pe care o ia z
-
este: 2
n
-(2
n-
1
-1)=22
n-1
-2
n-1
+1=2
n-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:
- inversm cifrele: 0111...1 (de n-1 ori 0)
- adunm 1 i obinem 10...0 (de n-1 ori 0), adic de unde am plecat
- 10...0
(2)
=2
n-1
i dac inem cont c numrul este negativ obinem -2
n-1

Valoarea memorat (10...0) este special (trecut n cod complementar
sau invers rmne nemodificat). S-a fcut convenia ca ea s reprezinte valoarea
negativ -2
n-1
. n concluzie, cel mai mic numr care poate fi reinut este -2
n-1
.
Utiliznd reprezentarea n cod complementar pe n poziii binare se pot memora
valori ntregi din intervalul: -2
n-1
, 2
n-1
-1.
Exemple:
- Pentru un octet se memoreaz numere ntregi cuprinse n intervalul -2
7
,
2
7
-1=-128, 127.
- Prin utilizarea a doi octei se memoreaz numere ntregi din intervalul -2
15
,
2
15
-1=-32768, 32767.


7
www.l s- i nf omat .ro | www.manual e- de- i nf ormat i ca.ro

4 . M e m o r a r e a n um e r e l o r r e a l e
Exemple: 2,625, 10,34. Pentru memorarea numerelor reale se
utilizeaz virgula mobil. Pentru nceput, prezentm schemele sub care se
memoreaz numerele n virgul mobil simpl precizie i dubl precizie.
1) Virgul mobil simpl precizie. Reprezentarea se face 4 octei (32 poziii
binare) sub forma:




2) Virgul mobil dubl precizie. Reprezentarea se face 8 octei (64 poziii
binare) sub forma:




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 scrie numrul n binar;
- se normalizeaz - adic se scrie n baza 2 sub forma
exp
) 10 ( .. .......... 1 , 0

a semnicativ paete
(10 reprezint numrul 2
(10)
). Cu alte cuvinte, numrul se
scrie de aa natur nct partea ntreag s fie 0, iar prima cifr a prii
zecimale s fie diferit de 0.
Exponent
modificat
Parte
semnificativa
S
1poziie
binar
8 poziii
binare
55 poziii
binare
Parte
semnificativ
a
S
1poziie
binar
8 poziii
binare
23 poziii
binare
Exponent
modificat


8
www.l s- i nf omat .ro | www.manual e- de- i nf ormat i ca.ro

- se reprezint conform standardului cerut. Exponentul modificat se obine dup
formula: Exponentul modificat = 2
7
+exp
(10)
=10000000
(2)
+exp
(2)
.
ntruct primul bit al prii semnificative este ntotdeauna 1, acesta nu va fi reinut,
dar se va ine cont de el.
- se completeaz bitul de semn dup regula dat.
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:

0000 0000000000 1010001100 10000111 0

sau n hexa: 43D18000.
b) S se reprezinte n virgul mobil numrul -100,75. Am reprezentat 100,75.
Singura deosebire este c bitul de semn este 1.

0000 0000000000 1010001100 10000111 1

sau n hexa: C3D18000.
Pentru a reprezenta aceleai numere n virgul mobil dubl precizie se
adaug n dreapta reprezentrilor obinute un numr de 32 de cifre binare 0 (sau 8
cifre hexa 0 - pentru reprezentarea respectiv).
c) S se reprezinte n virgul mobil simpl precizie numrul 0,05.


9
www.l s- i nf omat .ro | www.manual e- de- i nf ormat i ca.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):

100 0110011001 1001100110 01111100 0
n hexa, reprezentarea este: 3E4CCCCC.
d) S se reprezinte n virgul mobil simpl precizie numrul -0,05.
Pornim de la reprezentarea anterioar, cu bitul de semn 1.

100 0110011001 1001100110 01111100 1
n hexa, reprezentarea este: BE4CCCCC.
Utiliznd virgula mobil simpl precizie exponentul modificat (exp+128)
trebuie s verifice dubla inegalitate:
0 exp+128 255
Motivele?
255 este cel mai mare numr natural reprezentabil pe 8 poziii;
0 este cel mai mic numr natural reprezentabil pe 8 poziii.
Din dubla inegalitate de mai sus, rezult c exponentul trebuie s verifice
relaia:
-128 exp 127
Prin urmare, cel mai mare numr care poate fi reinut n virgul mobil
simpl precizie este:

0 11 1 10
1
2
1
2
1
2
2 1 2
2 2 2 1024 128 1000 1 3 10
1 3 10 10 1 3 10 10 1 3 10
2
1111111
2 23
127
10
127
10 12 7 10 12 7 12 12 2
3 12 2 36 2 38
, .... ( ) ( ... )
( ) ,
, ( ) , , .
( )
( ) = + + + ~ =
= = ~ =
= =
+


1 0
www.l s- i nf omat .ro | www.manual e- de- i nf ormat i ca.ro

Cel mai mic numr pozitiv care poate fi reinut este:
. 0 01 ........ 00000 , 0
10
1
) 1000 (
1
1024
1
) 2 (
1
2
1
2
1
2
1
2
1
2
2
1
) 10 ( 0 .. 100 , 0
39
39 13 13
13 10 130 129 128
128 10000000
) 2 (
~ = = ~
~ ~ ~ = = =


ori de

Observaii !
- S-a inut cont de faptul c bitul care reprezint prima cifr de dup virgul este,
implicit, 1 i nu se reprezint.
- Chiar 0, ca numr real se reprezint aproximativ. Cu toate acestea n hexa
reprezentarea sa este: 00000000 (n virgul mobil simpl precizie).
Observaia provine de la faptul c primul bit al prii semnificative este 1 i nu
se reprezint.
- ntruct pentru reprezentarea unui numr negativ nu se modific dect bitul de
semn, este suficient aproximarea fcut pentru numerele reale pozitive.
- Faptul c numerele reale se reprezint aproximativ, creeaz o mare problem
n informatic (pentru c exist aplicaii practice care cer o mare precizie a
calculului). Cu toate acestea se ocup Analiza numeric, disciplin aflat la
grania dintre informatic i matematic.
- 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.
- Cu ct numrul de bii folosii pentru reprezentarea exponentului modificat este
mai mare, cu att putem reprezenta numere mai mari.
- Cu ct numrul de bii folosii pentru reprezentarea prii semnificative este mai
mare, cu att numrul poate fi reprezentat mai precis.
- Cu ct numrul este mai mare crete probabilitatea ca acesta s fie
reprezentat cu aproximaie mai mare (exponentul mrit duce ca aproximaia
fcut la reprezentarea prii semnificative s fie mai mare).
5 . M e m o r a r e a ca r a ct e r e l o r
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.


1 1
www.l s- i nf omat .ro | www.manual e- de- i nf ormat i ca.ro

Exemple:
'a' se memoreaz prin 97;
'b' se memoreaz prin 98;
'c' se memoreaz prin 99;
'A' se memoreaz prin 65;
'B' se memoreaz prin 66;
'C' se memoreaz prin 67;
'0' se memoreaz prin 80;
'1' se memoreaz prin 81;
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);
- A nu se confunda caracterul 1 cu numrul 1, caracterul 2 cu numrul 2 etc.
Exerciii pr o p u se
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?
- dac sunt privite ca 4 numere naturale;
- dac sunt privite ca 4 numere ntregi;
- dac sunt privite ca dou numere ntregi reprezentate n cod
complementar, fiecare pe doi octei;
- dac reprezint un numr n virgul mobil simpl precizie.

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