Sunteți pe pagina 1din 31

Bazele Informaticii

Curs 3

Prof. dr. ing. Vasile MANTA


Ș.l. dr. ing. Tiberius DUMITRIU

Iași, 2021
Sumar

1. Curs 1,2 – overview

2. Reprezentarea numerelor în SC

2
Cap. 1. REPREZENTAREA INFORMAŢIEI ÎN
SC NUMERICE

Curs 1,2 – overview

 Un sistem de numeraţie (SN) = un ansamblu de reguli care


precizează modul de utilizare al unei mulţimi finite de simboluri,
numite cifre, în scopul reprezentării valorilor numerice.
 SN pot fi:
– poziţionale (ponderea valorică a unei cifre este dată de
poziţia ei)
– nepoziţionale
 Numărul de simboluri utilizat într-un SN reprezintă baza
(rădăcina) sistemului de numeraţie.

3
1. Conversia numerelor dintr-o bază în alta
Curs 1,2 – overview

a) Conversia unui număr întreg pozitiv din baza 10 într-o bază B


oarecare

b) Conversia unui număr subunitar pozitiv din baza 10 într-o bază B


oarecare

c) Conversia unui număr real din baza 10 într-o bază oarecare B

d) Conversia unui număr dintr-o bază B de numeraţie în zecimal

e) Conversia Binar-Octal-Hexazecimal
4
1. Conversia numerelor dintr-o bază în alta
Curs 1,2 – overview
e) Conversia Binar-Octal-Hexazecimal Zeci Octal Hexa- Binar
mal zecimal
 Conversia octal-binar sau hexazecimal- 0 0 0 0000
1 1 1 0001
binar se realizează exprimând fiecare cifră 2 2 2 0010
octală, respectiv hexazecimală, prin 3, 3 3 3 0011
respectiv 4, cifre binare. 4 4 4 0100
5 5 5 0101
6 6 6 0110
 Conversia binar-octal sau binar- 7 7 7 0111
8 10 8 1000
hexazecimal se realizează grupând câte 3, 9 11 9 1001
respectiv 4, cifre binare începând de la 10 12 A 1010
marca fracţionară (punct, virgulă) spre 11 13 B 1011
stânga şi spre dreapta. Apoi se ataşează 12 14 C 1100
13 15 D 1101
fiecărei grupe simbolul echivalent din octal 14 16 E 1110
sau din hexazecimal şi combinaţia obţinută 15 17 F 1111
este chiar reprezentarea. Grupele extreme 16 20 10 10000
se completează, dacă este cazul, cu 5
zerouri nesemnificative.
2. Noțiuni de codificare a informației
Curs 1,2 – overview
 Schimbarea formei de reprezentare a informaţiei se numeşte
codificare.

 Fie 𝐗𝐗 = 𝑥𝑥1 , 𝑥𝑥2 , … , 𝑥𝑥𝑁𝑁 mulţimea simbolurilor primare;


 Fie 𝐁𝐁 = 𝑏𝑏1 , 𝑏𝑏2 , … , 𝑏𝑏𝑛𝑛 mulţimea simbolurilor cu ajutorul cărora se
realizează codificarea elementelor mulţimii X
 Prin operaţia de codificare se ataşează fiecărui element 𝑥𝑥𝑖𝑖 ∈ 𝐗𝐗 o
secvenţă de simboluri 𝑏𝑏𝑖𝑖 ∈ 𝐁𝐁 astfel încât modelul de codificare va fi
reprezentat printr-o corespondenţă biunivocă.
𝑥𝑥1 ↔𝑓𝑓1 𝑏𝑏1 , 𝑏𝑏2 , … , 𝑏𝑏𝑛𝑛 ≡ 𝑐𝑐1
𝑥𝑥2 ↔𝑓𝑓2 𝑏𝑏1 , 𝑏𝑏2 , … , 𝑏𝑏𝑛𝑛 ≡ 𝑐𝑐2
𝑥𝑥3 ↔𝑓𝑓3 𝑏𝑏1 , 𝑏𝑏2 , … , 𝑏𝑏𝑛𝑛 ≡ 𝑐𝑐3
 Notând fiecare combinaţie de simboluri cu 𝑐𝑐1 , 𝑐𝑐2 , 𝑐𝑐3 , ..., se
obţine mulţimea cuvintelor de cod 𝐂𝐂 = {𝑐𝑐1 , 𝑐𝑐2 , 𝑐𝑐3 , ...., 𝑐𝑐𝑁𝑁 }.
6
2 Noțiuni de codificare a informației
Curs 1,2 – overview

 Operaţia de revenire din mulţimea cuvintelor de cod în


mulţimea simbolurilor primare se numeşte decodificare.

 lungimea cuvântului = numărul de simboluri elementare dintr-un


cuvânt de cod.

 În cazul în care toate cuvintele de cod au aceeaşi lungime,


codificarea se numeşte uniformă.

 Cu n simboluri elementare se pot crea NS secvențe distincte de


lungime 𝑙𝑙
𝑁𝑁𝑁𝑁 = 𝑛𝑛𝑙𝑙 (1)
 Pentru realizarea codificării este necesar ca 𝑁𝑁𝑁𝑁 ≥ 𝑁𝑁.
(𝑁𝑁 = numărul de simboluri primare din X) 7
2 Noțiuni de codificare a informației
Curs 1,2 – overview

 Intern, într-un sistem de calcul, informaţia este reprezentată în binar


𝐵𝐵 = 0,1

 Cuvintele mulțimii 𝐂𝐂 sunt cuvinte binare de lungime 8, 16, 32, 64, ...

 Numărul de secvenţe distincte de lungime 𝑙𝑙, care pot fi create în


sistem binar este 2𝑙𝑙 .
din relația (1) => 𝑁𝑁 ≤ 2𝑙𝑙 => 𝑙𝑙𝑙𝑙𝑙𝑙2 𝑁𝑁 ≤ 𝑙𝑙

 Într-o codificare uniformă lungimea 𝑙𝑙 a secvențelor de cod


trebuie să fie cel puțin egală cu entropia maximă a sursei.

 După natura elementelor mulţimii 𝐗𝐗, codurile pot fi:


 numerice – mulţimea conţine valori numerice;
 alfanumerice – mulţimea conţine şi alte simboluri (litere, cifre, etc.).
8
3 Coduri numerice
Curs 1,2 – overview
3.1 Modalități de reprezentare a numerelor în calculator
 Codurile utilizate în reprezentarea numerelor sunt coduri
numerice.
 Pentru reprezentarea unei valori numerice trebuie precizat:
 codul folosit pentru a reprezenta acea valoare
 dimensiunea reprezentării.
 Reprezentarea poate fi făcută:
 În formatul cu virgulă fixă
 În formatul cu virgulă mobilă
 Reprezentarea în formatul cu virgulă fixă:
 numărul de cifre la dreapta virgulei, poziţia ei şi numărul de cifre la
stânga virgulei sunt fixe.
 virgula, care nu se reprezintă în calculator (deci nu ocupă o poziţie
în reprezentarea numărului) are o poziţie fixă. 9
10

3 Coduri numerice
Curs 1,2 – overview
3.2 Reprezentarea numerelor naturale (reprezentare aritmetică)
 Reprezentarea numerelor naturale N = {0, 1, 2, …} se realizează pe un număr
fix de poziţii binare (formatul cu virgulă fixă)
 Regula de asociere: reprezentarea binară a valorii respective

𝑛𝑛 𝑛𝑛 − 1 𝑛𝑛 − 2 2 1

2𝑛𝑛−1 2𝑛𝑛−2 2𝑛𝑛−3 21 20
 În poziţiile 1,2,3 … 𝑛𝑛 sunt înscrise cifrele binare corespunzătoare numărului
natural reprezentat în binar.
 Alinierea numerelor naturale se realizează la dreapta.
 Zerourile nesemnificative (daca este cazul) sunt plasate în faţa numărului.
 Pentru 𝑛𝑛 biţi, se pot reprezenta numerele naturale din intervalul [0, 2𝑛𝑛 − 1].
3 Coduri numerice
Curs 1,2 – overview
3.3 Reprezentarea numerelor întregi
 Coduri de reprezentare:
 reprezentarea în semn-mărime (cod direct),
 complement faţă de 2 (cod complementar),
 în complement faţă de 1 (cod invers),
 în exces, etc.

a) Reprezentarea numerelor întregi în semn-mărime (cod direct)


 Reprezentarea în semn-mărime, numită şi reprezentare algebrică, este
asemănătore reprezentării numerelor naturale, cu deosebire că prima
poziţie (primul bit) este ocupată de semnul numărului:
 𝑆𝑆 = 0, dacă numărul este pozitiv, 𝑁𝑁 ≥ 0;
 𝑆𝑆 = 1, dacă numărul este strict negativ, 𝑁𝑁 < 0.
 Intervalul admis pentru reprezentare [- 2n-1+1, 2n-1-1] 11
3.3 Reprezentarea numerelor întregi
b) Reprezentarea numerelor întregi în complement față de 2
(cod complementar)
 Considerăm un număr întreg 𝑁𝑁. Complementul faţă de 2, 𝑁𝑁𝐶𝐶 , al
numărului se defineşte prin relaţia:

(2)
 Unde,
 𝑁𝑁 este reprezentarea în valoare absolută a numărului 𝑁𝑁
 𝑛𝑛 dimensiunea reprezentării (numărul de poziţii binare inclusiv semnul)

 Pentru numere pozitive, 𝑁𝑁 ≥ 0 , reprezentarea în cod


complementar este identică cu reprezentarea în semn-mărime.

12
3.3 Reprezentarea numerelor întregi
b) Reprezentarea numerelor întregi în complement față de 2
(cod complementar)
 Numărul negativ , în baza 2, are reprezentarea (pe biţi, inclusiv
semnul):
n−2
N = −bn − 2bn −3  b1b0 = −∑ bi 2i (3)
i =0

 pentru complementul faţă de 2, se poate scrie:


n−2 n−2 n−2 n−2
n −1
Nc = 2 −
n
∑ bi 2 i
= 11
1 + 1 − ∑ bi 2 i
=2 + ∑2 i
+1− ∑ bi 2i
i =0 n i =0 i =0 i =0

n−2
⇔ Nc = 2 n −1
+ ∑ (1 − bi )2 i
+1 (4)
i =0 13
3.3 Reprezentarea numerelor întregi
b) Reprezentarea numerelor întregi în complement față de 2
(cod complementar)

 Dacă notăm 1 − bi ≡ bi unde bi reprezintă inversul logic al bitului bi ,


adică 0 = 1 și 1 = 0 , atunci relația (4) poate fi scrisă astfel:

N c = 1bn − 2bn − 3 b1b0 + 1 (5)

 Pe baza relaţiilor (3),(4),(5), pentru reprezentarea numerelor


negative în cod complementar, se pot enunţa trei reguli:

14
3.3 Reprezentarea numerelor întregi
b) Reprezentarea numerelor întregi în complement față de 2
(cod complementar)

 Metoda I: Se reprezintă numărul în valoare absolută, apoi se


inversează bit cu bit, inclusiv bitul de semn (care devine 1) şi se adună
1 la cel mai puţin semnificativ bit (bitul LSB).

 Metoda II: Se foloseşte definiţia (2), unde 𝑛𝑛 reprezintă dimensiunea


reprezentării (inclusiv semnul).

 Metoda III: Codul complementar al unui număr negativ, 𝑁𝑁 se obţine


prin inversarea biţilor reprezentării cu semn (inclusiv a bitului de
semn) a valorii absolute, 𝑁𝑁 , plecând de la dreapta spre stânga, cu
excepţia primului bit de 1 şi a tuturor biţilor de 0 dinaintea sa.
15
3.3 Reprezentarea numerelor întregi
b) Reprezentarea numerelor întregi în complement față de 2
(cod complementar)
 Se observă că, dacă se aplică Metoda 1 unei valori negative
reprezentate în complement faţă de 2, atunci se obţine valoarea
pozitivă echivalentă.

 În complement faţă de 2 avem o singură reprezentare pentru valoarea


zero.
Ex. Pe 8 biţi N = 0 se reprezintă în semn-mărime: 0 0000000
Aplicând prima metodă: 11111111 , adunând 1 rezultă reprezentarea în
cod complementar: N c = 0 0000000

 Pentru reprezentarea a 𝑛𝑛 biţi (din care unul pentru semn), domeniul


de valori este: −2𝑛𝑛−1 , 2𝑛𝑛−1 − 1

 Codul complementar este codul cel mai utilizat în reprezentarea


16
numerelor algebrice în calculator.
3.3 Reprezentarea numerelor întregi
c) Reprezentarea numerelor întregi în complement faţă de 1
(codul invers)
 Considerăm un număr 𝑁𝑁 întreg şi dimensiunea reprezentării (inclusiv
semnul) fiind 𝑛𝑛 . Complementul faţă de 1, 𝑁𝑁𝑖𝑖 , al numărului 𝑁𝑁 se
defineşte prin relaţia:

(6)

 Pentru numerele pozitive reprezentarea în cod invers este identică cu


reprezentarea în semn-mărime.

 În cazul numerelor negative, efectuând un raţionament similar cazului


codului complementar faţă de 2, se obţine expresia codului invers:

N i = 1bn − 2bn − 3 b1b0 (7)


17
3.3 Reprezentarea numerelor întregi
c) Reprezentarea numerelor întregi în complement faţă de 1
(codul invers)

 Din relațiile (6) și (7) rezultă două reguli de obţinere a codului invers:

 Metoda I: Se reprezintă valoarea absolută a numărului în cod direct


(semn-mărime) şi se inversează toţi biţi, inclusiv semnul.

 Metoda II: Se foloseşte definiţia (6), unde 𝑛𝑛 reprezintă dimensiunea


reprezentării (inclusiv semnul).

 Pentru reprezentarea a 𝑛𝑛 biţi (din care unul pentru semn), domeniul


de valori este: −2𝑛𝑛−1 + 1, 2𝑛𝑛−1 − 1

 Un dezavantaj al codului invers îl constituie faptul că admite două


reprezentări pentru 0:
+ 0 = 0 0000000
Ex. Pentru n=8 biți avem − 0 = 11111111 18
3.3 Reprezentarea numerelor întregi
d) Reprezentarea numerelor în cod exces

 Această codificare constă în adunarea unei valori constante la


fiecare număr întreg (pozitiv sau negativ) care se reprezintă.

 Valoarea constantă, notată 𝐸𝐸, care se adună, este de regulă


2𝑛𝑛−1 sau 2𝑛𝑛−1 − 1 , unde 𝑛𝑛 este numărul de biţi ai reprezentării.

 Matematic, un număr întreg 𝑁𝑁 se reprezintă în cod exces 𝐸𝐸


prin:
𝐸𝐸 + 𝑁𝑁

19
3.3 Reprezentarea numerelor întregi
d) Reprezentarea numerelor în cod exces

 În general, domeniul de valori întregi ce se pot reprezenta pe


biţi este
[
− 2 n −1 + 1, 2 n −1 − 1]
n −1
 Utilizând codul exces 2 − 1 , domeniul de mai sus se
transformă în domeniul de valori pozitive:

[0, 2 − 1]
n

 Codul în exces poate transforma un domeniu de numere


algebrice într-un domeniu de numere aritmetice.

 Codul în exces se foloseşte în special la reprezentarea


exponentului numerelor în formatul cu virgulă mobilă. 20
3.4 Reprezentarea numerelor reale

 Numerele reale se reprezintă în calculator în formatul cu virgulă mobilă


(flotantă). Un număr real 𝑁𝑁 , reprezentat într-o anumită bază de
numeraţie 𝐵𝐵, se poate scrie sub forma:

𝑁𝑁 = 𝑀𝑀 ∙ 𝐵𝐵𝐸𝐸
– 𝐸𝐸 - se numeşte exponent şi este un număr întreg (pozitiv sau
negativ), ce determină ordinul de mărime al numărului;
– 𝑀𝑀 - este un număr fracţionar numit mantisă, ce determină precizia
numărului.

 În acest caz reprezentarea nu este unică. De exemplu, în baza 10,


numărul real 3,14 poate fi scris în mai multe forme
3,14 = 3,14 ⋅ 10 0 = 31,4 ⋅ 10 −1 = 0,314 ⋅ 101

21
3.4 Reprezentarea numerelor reale
 Acest neajuns se înlătură dacă se consideră o reprezentare în
care mantisa satisface relaţia:

 În acest caz mantisa se numeşte normalizată, are obligatoriu după


marca fracţionară (virgulă sau punct) o cifră diferită de cifra 0 şi este în
valoare absolută un număr subunitar.

 Unele formate de reprezentare folosesc pentru normalizarea mantisei


relaţia:
1≤ M < B
 În general, în formatul cu virgulă mobilă, un număr real se aduce în
forma:
N=±M ⋅ B =
E
( −1) M ⋅ B
S E

unde mantisa M este normalizată și este considerată un număr pozitiv


subunitar sau supraunitar.
22
3.4 Reprezentarea numerelor reale
 În general, în formatul cu virgulă mobilă, un număr real se aduce în
forma:

 Informaţia care nu se modifică nu se reprezintă, adică baza şi virgula.

 Dacă baza de reprezentare este 2, bitul mai semnificativ al mantisei


este întotdeauna 1 (mantisa este normalizată).
 Acest bit poate să fie reprezentat (să i se aloce o poziţie) sau nu în
memoria calculatorului.
 În cazul în care nu se reprezintă se dublează numărul de mantise
distincte ce se pot reprezenta.
 Această tehnică de reprezentare este des utilizată, iar bitul care nu se
reprezintă se numeşte bit ascuns (hidden bit). 23
3.4 Reprezentarea numerelor reale
 În general, în formatul cu virgulă mobilă, un număr real se aduce în
forma:

 Condiţia de normalizare a mantisei (asigură unicitatea reprezentării


numărului real în calculator) stabileşte numărul de cifre ale mantisei.
 Acest număr determină precizia reprezentării (numărul de cifre
zecimale disponibile în acel format.
 Numărul total de mantise distincte ce se pot reprezenta este:

N mantise = (B − 1)B m −1

 Reprezentarea exponentului - se utilizează în general un cod în exces


pentru a deplasa domeniul valorilor exponentului într-un interval
pozitiv.
24
3.4 Reprezentarea numerelor reale
 În general, în formatul cu virgulă mobilă, un număr real se aduce în
forma:

 Reprezentarea exponentului - se utilizează în general un cod în exces


pentru a deplasa domeniul valorilor exponentului într-un interval
pozitiv.
 Într-o reprezentare care alocă e biţi pentru exponent, prin
reprezentarea în cod exces 2 e −1, domeniul de valori al exponentului

[( ) ]
D = − 2 e −1 − 1 , 2 e −1 − 1 se transformă în [
D′ = 1, 2 e −1 ]
 Valoarea 0 a exponentului în cod exces este rezervată pentru
reprezentarea numărului real 0.0, deoarece valoarea 0 nu poate fi
normalizată (mantisa M ≠ 0)
 Exponentul reprezentat în cod exces se mai numeşte caracteristică. 25
3.4 Reprezentarea numerelor reale
 În general, în formatul cu virgulă mobilă, un număr real se aduce în
forma:

 Valoarea maximă a exponentului este: Emax = 2 e −1 − 1

 Pentru o mantisă subunitară, valorile pozitive reprezentabile satisfac


relația:
V=
min B − Emax −1 ≤ M ⋅ B E < B=
Emax
Vmax

 Pentru o mantisă supraunitară, valorile pozitive reprezentabile satisfac


relația:
= B − Emax ≤ M ⋅ B E < B Emax =
Vmin +1
Vmax
26
3.4 Reprezentarea numerelor reale

-Vmax -Vmin 0 Vmin Vmax

 Dacă în urma unei operaţii aritmetice rezultă o valoare din intervalele


(-∞,-Vmax] sau [Vmax, +∞,) atunci apare fenomenul de depăşire a
capacităţii de reprezentare:
– depăşire flotantă superioară (rezultat > Vmax)
– depăşire flotantă inferioară (rezultat < - Vmax)

 Fenomenul este semnalat de către calculator, execuţia programului


fiind abandonată, odată cu afişarea unui mesaj corespunzător.

 Dacă rezultatul unei operaţii este în intervalul (- Vmin, Vmin ) atunci el


este considerat ca fiind 0 şi nu se semnalează eroare.

 Pentru mărirea capacităţii de reprezentare se poate mări numărul de


biţi rezervaţi exponentului sau se alege o bază mai mare. 27
3.4 Reprezentarea numerelor reale
 Există mai multe formate de reprezentare în virgulă mobilă:
– formatul DEC,
– formatul IBM,
– standardul IEEE, etc.

 Standardul IEEE (Institute of Electrical and Electronics Engineering) a


fost adoptat în 1985 şi majoritatea firmelor de microprocesoare (Intel,
AMD, Motorola, etc.) produc coprocesoare aritmetice care lucrează cu
reprezentarea standard în virgulă mobilă.

 Baza de reprezentare este 2.

 Mantisa se reprezintă în valoare absolută folosind tehnica cu bit


ascuns. Condiţia de normalizare a mantisei este:

28
3.4 Reprezentarea numerelor reale
 Standardul IEEE defineşte trei formate:
– simplă precizie (32 biţi);
– dublă precizie (64 biţi);
– precizie extinsă (80 biţi) - se utilizează în interiorul unităţilor aritmetice de virgulă
mobilă, la care programatorii nu au acces.
Exemple: https://www.h-schmidt.net/FloatConverter/IEEE754.html

29
3.4 Reprezentarea numerelor reale

30
3.4 Reprezentarea numerelor reale
Ex. Reprezentarea numărului -13.25(10) în virgulă mobilă, simplă precizie,
cu bit ascuns.
Pas 1. Transformăm numărul din baza 10 în baza 2.
-13.25(10) = -1101,01(2)
Pas 2. Normalizăm mantisa
-1101,01(2) = -1,10101(2) * 23(10)
Pas 3. Calculam caracteristica
c= 127 + 3 = 130(10) =10000010(2)
Pas 4. Reprezentăm numărul pe 32 biți
1 10000010 10101000000000000000000

BS caracteristică mantisa

În baza 16 reprezentarea este: C1540000


În memoria RAM aceasta va fi scrisa astfel: 00 00 54 C1 31

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