Documente Academic
Documente Profesional
Documente Cultură
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.