3.4. REPREZENTAREA NUMERELOR NATURALE, ÎNTREGI ȘI REALE ÎN CALCULATOR

Calculatoarele actuale utilizează sistemul de numeraţie binar. Reperzentarea numerelor naturale N = {0, 1, 2, … , 9} se realizează pe un număr fix de poziţii binare, de regulă 8, 16, 32 sau 64 (fig. 1)

n-1                n-2                          . . . 1                   0

 

 

 

 

 

2ⁿ-¹                 2ⁿ-²                        …                                  2¹                  20

În poziţiile 0, 1, 2, … , n-1 sînt înscrise cifrele binare ale numărului natural reprezentat  în sistemul de numeraţie binar. Alinierea numerelor binare se realizează la dreapta, eventuale zerouri nesemnificative sînt plasate în faţa numărului binar.

Numărul maxim ce poate  fi realizat pe n poziţii binare este

1*20 + 1*2¹ +… + 1*2ⁿ-¹ = 2ⁿ - 1.

Prin urmare pe n poziţii binare pot fi reprezentate numerele naturale din intervalul

{0, … , 2ⁿ - 1}

În calculator nu există posibilitatea întroducerii directe a semnelor + şi - , ataşate numerelor pozitive şi negative. Din acest motiv, reprezentarea semnului se face cu ajutorul unei cifre binare, denumită cifră semn, aşezată în poziţia n-1 fig.2.

0, dacă numărul este pozitiv

S = {

1, dacă numărul este negativ

n-1            n-2                 . . .                              1                 0

 

 

 

 

 

S            2ⁿ - ²          . . .                        2¹              2º

Numerele cu semn se reprezintă cel mai des nu în sistemul binar direct, ci înyr-un sistem binar codificat, care oferă avantaje în executarea operaţiilor aritmetice cu numerele algebrice. Din acest punct de vedere se cunosc trei moduri de reprezentare, denumite coduri binare pentru numere algebrice.

Codul direct (codul mărime şi semn). Scrierea unui număr în acest cod este foarte simplă: în cifra semn se scrie zero, dacă numărul este pozitiv şi 1, dacă numărul este negativ; în partea de valoare se înscrie numărul în sistemul binar obişnuit.

Intervalul posibil, admis de reprezentarea în studiu este

{1-2ⁿ-¹, 2ⁿ-¹ - 1}

Codul invers. Pentru numerele pozitive scrierea în cod este identică cu cea din codul direct. Dacă numărul este negativ, el se scrie mai întîi ca şi cum ar fi pozitiv, apoi se intersează fiecare cifră binară, adică 1 devine 0 şi 0 devine 1.

Pe n poziţii binare în cod invers pot fi reprezentate numere întregi din intervalul

{1-2ⁿ-¹, 2ⁿ-¹ - 1}

Codul complementar. În acest cod numere pozitive au aceaşi reprezentare ca şi în codul direct şi codul invres. Dacă numărul este negativ, el se scrie mai întîi în codul invers, apoi se adună 1 la cifra cea mai puţin semnificativă (poziţia binară 0).

Adunarea numerelor pozitive se efectuiază în binar poziţia cu poziţie.

Dispozitivul aritmetic care efectuiază adunarea se numeşte sumator.

Pentru a nu folosi un alt dispozitiv pentru scădere, operaţia respectivă se transformă în adunarea astfel:

a – b = a + (-b)

unde a – descăzutul, b – scăzătorul.

S-a demonstrat, că scăderea se transformă în adunare prin reprezentarea scăzătorului în cod invers sau cod complementar.

Scăderea efectuată prin reprezentarea scăzătorului în cod invers presupune următoarele observaţii:

-         dacă rezultatul scăderii este un număr negativ, acesta este reprezentat tot în cod invers;

-         dacă apare transport de la poziţia alocată semnului, aceasta se va aduna la cifra cea mai puţin semnificativă a rezultatului.

Scăderea efectuată prin reprezentarea scăzătorului în cod complementar presupune următoarele observaţii:

-         dacă rezultatul scăderii este un număr negativ, acesta este reprezentat tot în cod complementar;

-         apare transport de la poziţia alocată semnului, acesta se ignoră.

Numerele reale se reprezintă în calculator sub formă fracţionară prin intermediul reprezentării în virgula fixă sau în virgulă mobilă.

Reprezentarea în virgula fixă. În acest caz se consideră că toate numere au virgula plasată în aceeaşi poziţie, chiar dacă acest lucru nu corespunde cu forma externă de reprezentare. Procesul de translatare din formă externă în formă internă şi invers se realizează cu ajutorul unor coeficienţi de scalare, aleşi în mod corespunzător de programator.

n-1           n-2            n-3                     . . .                               1                  0

 

 

 

 

 

 

 

S               2-¹         2-²          . . .                                         2-(n-1)

 

Poziţia

virgulei

Reprezentarea numerelor reale în virgulă fixă.

Avantajul principal al reprezentării în virgulă fixă constă în faptul, că în operaţiile aritmetice cu numere reale pot fi efectuate de dispozitivul aritmetic destinat operării cu numere întregi.

Reprezentarea în virgulă mobilă. Operaţiile în virgulă fixă sînt comode pentru structurile omogene de date, cînd toate numerele reale sînt subunitare. Însă această reprezentare inefecientă în calculele ştiinţifice, unde simultan se lucrează cu numere foarte mari şi numere foarte mici,

Numere reprezentate în virgulă mobilă pot fi numere întregi sau fracţionare, a căror valoare este dată de relaţia:

x = M * bE

unde b este valoarea bazei, M este număr subunitar numit mantisă, iar E este un exponent. În calculatoarele actuale se utilizează b = 2 sau 16.

Numărul reprezentat în virgulă mobilă este normalizat, dacă prima cifră după virgulă a mantisei este diferită de zero.

Exemplu:

  1. Numărul 23  se va exprima în virgulă mobilă astfel:

23 = (10111)2 = 0,10111*25,

unde M = 0,10111; b = 2; E = 5.

  1. Numărul –0,375 se va exprima în virgulă mobilă astfel:

–0,375 = (-0,011)2 = -0,11 * 2-¹

M = -0,11; b = 2; E = -1.

Există mai multe variante de reprezentare a mantisei şi exponentului pe n poziţii binare. În fig.2 este redată reprezentarea în virgulă mobilă, formatul exponent-mantisă.

Cifră

semn mantisă

n                                n

 

 

Exponent

Mantisă

 

Cifră

semn exponent

Fig.2 Reprezentare în virgulă mobilă, format exponent-mantisă

Numărul poziţiilor binare nE alocate exponentului determină domeniul de mărime al numerelor care pot fi reprezentate, în timp ce numărul biţilor pentru mantisă nM determină precizia de exprimare a numărului.

În fig.3 este redată exprimarea numerelor formatul caracteristică-mantisă. Caracteristica C constituie o formă de exprimare a exponentului E şi se determină din relaţia:

C = E + K.

 

 

Semn mantisă

n                                 n

Caracteristică

Mantisă

Fig.3 Reprezentare numerelor formatul caracteristică-mantisă.

Adunarea şi scăderea a două numere în virgulă mobilă se efectuiază astfel:

-         se compară cei doi exponenţi pentru a determina pe cel mai mare;

-         se aliniază mantisa numărului cu exponent mai mic prin deplasarea virgulei cu un numaă de poziţii egal cu diferenţa exponenţilor;

-         se adună (se scad) mantisele aliniate, atribuind rezultatul exponentului comun;

-         eventual se normalizeazţ mantisa rezultatului cu modificarea exponentului.

Exemple:

  1. să se efectuieze în virgulă mobilă 15+1,75

x = 15 = (1111)2 = 0,1111*24

y = 1,75 = (1, 11)2 = 0,111*2¹

deoarece x are exponentul mai mare, y se va alinia cu 3 poziţii:

y = 0,000111 * 24.

x + y = 0,111100*24

0,000111*24

__________________

1,000011*24

normalizînd, obţinem x+y=0,1000011*25=16,75.

  1. să se efectuieze în virgulă mobilă 13 – 0,25.

x = 13 = (1011)2 = 0,1011*24

y = 0,25 = (0,01) 2 = 0,1*2-¹

deoarece x are exponentul mai mare, y se va alinia cu 5 poziţii:

x – y = 0,101100*24

0,000001*24

_________________

0,101011*24

Normalizarea rezultatului nu este necesară. Rezultatul este x-y=0,101011*24=12,75

Ultima modificare: luni, 6 iunie 2011, 19:51