Professional Documents
Culture Documents
Suport Curs UI2
Suport Curs UI2
Durata: 5 ore
Baze de numeraţie
35
utilizării bistabililor în construcţia memoriei calculatoarelor, în informatică
se utilizează reprezentarea numerelor în baza 2 sau puteri ale acesteia (baza
8 şi baza 16). Rezultatele obţinute în analiza matematică ne arată că orice
număr real se poate scrie într-o bază oarecare q 2 sub forma
an an1 an2 ... a1 a0 . a1 a2 a3 ... am ... ,
36
N10 an q n an1 q n1 an2 q n2 ... a1q a0 .
Exemple:
100011 2 1 2 5 0 2 4 0 2 3 0 2 2 1 21 1 2 0 35 10
37
În general, obţinem în ordine cifrele a 0 , a1 , a 2 , …, a n pentru
fiecare pas i aplicat relaţiei
N 10i 1 a
N 10( i ) i , i 0,1, 2, ..., n , unde N 101 N 10 .
q q
(i )
Algoritmul de conversie se termină când se obţine câtul N 10 egal cu
zero. Numărul în baza q se scrie, prin urmare, cu cifrele a n , a n 1 , ..., a1 , a 0 ,
aşadar în ordinea inversă a obţinerii lor.
Exemple: Convertim din baza 10 în baza 2, numerele 35 şi 3028
obţinute în exemplul precedent, aplicând algoritmul descris.
35 2 3028 16
34 17 2 3024 189 16
1 16 8 2 4 176 11 16
1 8 4 2 13 0 0
0 4 2 2 11
0 2 1 2
0 0 0
1
38
Conversia părţii fracţionare a unui număr real pozitiv dintr-o bază
oarecare q în baza 10
Ca şi în cazul numerelor întregi, conversia dintr-o bază oarecare q în
baza 10 a unei fracţii Fq se face utilizând dezvoltarea sa polinomială, adică:
F10 a 1 q 1 a 2 q 2 ... a m q m ...
Exemple:
0.10112 1 2 1 0 2 2 1 2 3 1 2 4 0.687510
0. A516 A 16 1 5 16 2 0.6445310
Deci
a 2 q F10(1) şi analog a 3 q F10 ,
( 2)
unde,
F10( 2 ) a 3 q 1 a 4 q 2 ... a m q m 2 ...
şi aşa mai departe.
(i )
Dacă există un număr i întreg astfel încât F10 este număr întreg,
atunci algoritmul se opreşte. În caz contrar fracţia este periodică.
Exemple:
Fie numărul F10 0.64453 . Se doreşte conversia acestuia în baza 16.
39
Aplicăm procedeul explicat mai sus şi avem:
0.64453 16 10.31248 a1 A
0.31248 16 5 a2 5
octal binar
0 0 0 0
1 0 0 1
2 0 1 0
3 0 1 1
4 1 0 0 triade
5 1 0 1
6 1 1 0
7 1 1 1
40
Conversia rapidă unui număr din octal în binar se face scriind în locul
fiecărei cifre octale triada corespunzătoare.
Exemplu:
Numărul 47.368 se scrie în baza 2 făcând înlocuirile:
4 cu 1 0 0
7 cu 1 1 1
3 cu 0 1 1
6 cu 1 1 0
Exemplu:
1 111 101.011 101 12 = 175.3748
Conversia binar-hexazecimal
Prezentăm mai jos (tabelul 2) valorile cifrelor hexazecimale în binar,
numite tetrade.
În conversia binar-hexazecimal rolul triadelor este luat de tetrade, iar
paşii algoritmului sunt identici cu cei ai conversiei binar-octal.
41
Tabelul 2. Tetradele corespunzătoare reprezentării în baza 2
a cifrelor din baza 16
Exemplu :
1111000.1110 11112 = 78.ED16
+ 0 1 x 0 1
0 0 1 0 0 0
1 1 10 1 0 1
42
În baza 8 tabelele pentru adunare şi înmulţire sunt după cum urmează
(tabelul 4):
Tabelul 4. Regulile de calcul pentru adunare şi înmulţire în baza 8
+ 0 1 2 3 4 5 6 7
0 0 1 2 3 4 5 6 7
1 1 2 3 4 5 6 7 10
2 2 3 4 5 6 7 10 11
3 3 4 5 6 7 10 11 12
4 4 5 6 7 10 11 12 13
5 5 6 7 10 11 12 13 14
6 6 7 10 11 12 13 14 15
7 7 10 11 12 13 14 15 16
x 0 1 2 3 4 5 6 7
0 0 0 0 0 0 0 0 0
1 0 1 2 3 4 5 6 7
2 0 2 4 6 10 12 14 16
3 0 3 6 11 14 17 22 25
4 0 4 10 14 20 24 30 34
5 0 5 12 17 24 31 36 43
6 0 6 14 22 30 36 44 52
7 0 7 16 25 34 43 52 61
� Test de autoevaluare
2.1. Care este reprezentarea în baza 2 şi 16 a numerelor: 3265, 28,
293 şi 526 scrise în baza 10?
2.2. Care este valoarea în baza 10 a numerelor binare: 00110101,
01110101, 00010011?
2.3. Convertiţi în baza 10 numerele: 0. 111012, 11.0101112, 10.01112,
A3.26716, ABA.BA16.
2.4. Convertiţi în bazele 2, 8, 16 numărul 30.310.
2.5. Convertiţi în baza 8 numărul 110111001.10102.
2.6.Convertiţi în baza 2 numerele A4216, 148.F16 şi 331.508.
43
Reprezentarea informaţiei în calculator
44
Exemplu. Valorile 6 şi –6 sunt reprezentate în binar, pe 8 biţi sub
forma:
6 0000 0 11 0
6 1111 1 0 0 1
Operaţia de scădere se reduce la o operaţie de adunare prin
reprezentarea scăzătorului în cod invers. Dacă rezultatul este negativ atunci
el va fi reprezentat tot în cod invers. Dacă apare transport în stânga
rangului de semn aceasta se va aduna la rangul cel mai puţin semnificativ
(cel mai din dreapta) al rezultatului.
Exemple:
Într-o reprezentare pe 8 biţi operaţia 6-5 se efectuează astfel:
610 0 0 0 0 0 1 1 0 2 în cod direct
5 10 0 0 0 0 0 1 0 12 în cod direct
(+6) 0 0 0 0 0 1 1 0
+(-5) +1 1 1 1 1 0 1 0
1 10 0 0 0 0 0 0 0
+
0 0 0 0 0 0 0 1
(+6) 0 0 0 00 1 1 0
+(-7) +1 1 1 1 1 0 0 0
- 1 1 1 1 11 1 1 0
45
Observaţie. Şi în acest tip de reprezentare se menţine dezavantajul
reprezentării valorii zero sub două forme, întâlnit la codul direct.
Exemplu:
(+4) 0 0 0 0 0 1 0 0
+(-4) 1 1 1 1 1 0 1 1
0 1 1 1 1 1 1 1 1
46
(+7) 0 0 0 0 0 1 11
+(-7) + 1 1 1 1 0 01
1
0 10 0 0 0 0 0 0 0
se neglijează
47
Reprezentarea în virgulă mobilă
În reprezentarea în virgulă mobilă se porneşte de la un rezultat
matematic cunoscut şi anume: orice număr real poate fi reprezentat în
mod unic sub forma (numită virgulă mobilă normalizată):
a qb , unde 1/ q | a | 1 , q 2 număr natural, b număr
întreg.
q este baza de reprezentare,
a se numeşte mantisă, b se numeşte exponent.
De exemplu, numărul 1423.208 în baza 10 are reprezentarea în
virgulă mobilă normalizată:
0.1423208 104 .
Aici b are valoarea 4, q valoarea 10, iar mantisa a 0.1423208 .
Condiţia 1 / q | a | 1 este esenţială pentru asigurarea unicităţii
reprezentării. Pentru q = 10 condiţia se scrie 0.1 | a | 1 , ceea ce este
echivalent cu faptul că prima cifră după virgulă să fie diferită de 0. În cazul
în care se renunţă la această restricţie asupra mantisei, există o infinitate de
reprezentări echivalente. De exemplu, numărul de mai sus se poate scrie
echivalent:
0.1423208 10 4 , 14 .23208 10 2 , 1423208 10 4 , 0.01423208 10 5 etc.
Denumirea de virgulă mobilă vine tocmai de la deplasarea virgulei,
funcţie de valoarea exponentului.
Pentru a aduna două numere scrise sub formă normalizată trebuie ca
ele să aibă acelaşi exponent. Dacă exponenţii sunt diferiţi, numărul cu
exponent mai mic este scris în virgulă mobilă nenormalizată astfel încât
noul exponent obţinut să fie egal cu cel mai mare dintre cei doi exponenţi.
Înmulţirea se face înmulţind mantisele şi adunând exponenţii.
Din cauza restricţiilor privind lungimea mantisei, aritmetica virgulei
mobile diferă de aritmetica obişnuită.
Pentru a ilustra acest lucru, să presupunem că mantisei i se rezervă
patru cifre zecimale şi să considerăm exemplele:
48
0.6532 104 0.0001104 0.6533104 ;
Se constată următoarele:
în exemplul 1) nu se pierde nici o cifră;
32 31 … 24 23 … 1
S Caracteristică (c) Fracţie (f)
49
S 0 când numărul reprezentat are semnul negativ;
S 1 când numărul reprezentat are semnul pozitiv.
Caracteristica c ocupă 8 biţi (biţii 24-31) şi conţine valoarea
exponentului la care se adaugă valoarea 127, adică:
c e 127 .
Folosirea acestei formule permite economisirea unui bit care ar fi
necesar pentru memorarea semnului exponentului. Zona de 8 biţi destinată
caracteristicii este considerată totdeauna pozitivă şi deci:
0 c 28 1 255 .
Din acest motiv, valorile minime şi maxime ale exponentului sunt
–127 respectiv 128.
Cu alte cuvinte:
dacă c 127 atunci e 0 ;
dacă c 127 atunci e 0 .
Fracţia (f) este reprezentată în zona biţilor 1-23. Alinierea se face la
stânga, iar dacă este cazul spaţiile libere se completează cu cifra zero.
Reprezentarea în virgulă mobilă dublă precizie se face pe 64 de biţi şi
are structura:
64 63 … 53 52 … 1
S Caracteristică (c) Fracţie (f)
50
Reprezentarea caracterelor alfanumerice
Calculatoarele prelucrează informaţie numerică, dar şi informaţie
nenumerică (texte). Pentru reprezentarea informaţiei numerice se folosesc
algoritmii şi convenţiile prezentate.
Reprezentarea informaţiei nenumerice (litere mari şi mici, cifre
zecimale, semne de punctuaţie, operatori aritmetici şi logici, simboluri
pentru controlul comunicaţiei şi editare etc.) se face pe baza unor coduri.
Aceste coduri asociază fiecărui semn utilizat o configuraţie binară. Pentru o
mulţime de m semne sunt necesare 2n configuraţii binare unde n este cel
mai mic număr natural cu proprietatea 2 n m . De exemplu, fiecare
element al unei mulţimi de 30 de semne poate fi codificat utilizând una din
cele 25 32 configuraţii binare distincte, cu lungimea de la 5 biţi. Se
observă că două din cele 32 configuraţii binare posibile nu sunt folosite
(sunt cuvinte fără sens).
Convenţia de reprezentare a caracterelor alfanumerice, în
calculatoarele moderne este codul ASCII (American Standard Code for
Information Interchange). O configuraţie binară din codul ASCII are 8 biţi
(se pot codifica 28 256 semne). Plajele de reprezentare sunt următoarele:
� Test de autoevaluare
2.7. Care este reprezentarea în virgulă mobilă normalizată a numărului
în baza 10, 207.022? Dar a numărului 0.00446?
2.8. Care dintre următoarele este structura reprezentării în virgula
mobilă simplă precizie?
51
a.
64 63 … 53 52 … 1
S Caracteristică (c) Fracţie (f)
b.
32 31 … 24 23 … 1
S Caracteristică (c) Fracţie (f)
c.
64 63 … 24 23 … 1
S Caracteristică (c) Fracţie (f)
52
Rezumat
Construcţia memoriei calculatoarelor fiind bazată pe utilizarea
elementelor cu două stări stabile, informaţia numerică se reprezintă în baza
2 sau în baze care sunt puteri ale acesteia (baza 8 şi baza 16). Pe de altă
parte, valorile numerice pe care le furnizăm programelor sunt exprimate în
baza 10, şi tot în baza 10 solicităm rezultatele acestor programe. Prin
urmare, în operarea cu valori numerice au loc foarte frecvent conversii în şi
din baza 10 în bazele 2, 8 sau 16. Acest capitol descrie conversiile
numerelor întregi şi reale dintr-o bază de numeraţie în alta şi reprezentarea
în calculator a informaţiilor numerice şi alfanumerice.
Reprezentarea numerelor întregi se poate realiza în trei moduri:
reprezentare în modul şi semn (cod direct);
53
Bibliografie
2. Adrian Petrescu, Nicolae Ţăpuş, Trandafir Moisa, Gheorghe Rizescu,
Viorica Hărăbor, Mihai Mârşanu, Traian Mihu, abc de calculatoare personale
şi … nu doar atât …, Vol.I, Ed. Tehnică, Bucureşti, 1990.
10. Leon Livovschi, Bazele Informaticii, Editura Didactică şi Pedagogică,
Bucureşti, 1981.
54