notazione esponenziale
notazione esponenziale particolare rappresentazione dei numeri reali, in cui un numero reale a è espresso nella forma: a = sign(a) ⋅ m ⋅ Bk dove
• sign(a) fornisce il segno di a;
• m è un numero reale non negativo detto mantissa;
• B è un numero intero positivo che costituisce la base della rappresentazione;
• k è un numero intero, positivo o negativo, detto caratteristica del numero reale nella base B.
Per esempio, il numero 0,000321 è scritto in notazione esponenziale di base B = 10 come 3,21 ⋅ 10−4 (il segno positivo è sottinteso). La notazione esponenziale tuttavia non è univoca, perché è possibile collocare la virgola arbitrariamente e scrivere, per esempio, il numero precedente in vari modi: 32,1 ⋅ 10−5; 321 ⋅ 10−6; 0,321 ⋅ 10−3 e così via.
In molti ambienti di calcolo numerico i risultati ottenuti possono essere visualizzati in una particolare notazione esponenziale in base 10, detta → notazione scientifica, nella quale il numero del precedente esempio è rappresentato soltanto come 3,21 ⋅ 10−4 oppure come 3,21 E−4 perché in questa notazione esso è scritto in modo tale che vi sia una sola cifra diversa da 0 prima della virgola e di conseguenza si determina l’opportuno esponente di 10 in modo da non alterare il valore del numero. Per esempio, volendo scrivere in notazione scientifica il numero 403,2, si scriverà 4,032 ⋅ 102.
Nella rappresentazione di un numero all’interno di un elaboratore, in cui il segno che separa la parte intera di un numero dalla sua parte decimale è spesso un punto anziché una virgola, la notazione esponenziale prevede invece che la cifra prima del punto decimale sia sempre uguale a 0, mentre la prima cifra decimale sia invece sempre diversa da 0 (a meno che il numero non sia proprio 0). Poiché nella memoria dell’elaboratore un numero viene rappresentato sotto forma di sequenze finite di bit, tale rappresentazione dipende dal numero di bit allocati rispettivamente per la mantissa e per la caratteristica. Con i numeri così rappresentati si opera secondo le regole dell’→ aritmetica finita in virgola mobile normalizzata. Se per esempio l’elaboratore utilizza un byte (8 bit) per rappresentare un numero (in sistema binario), tale byte è suddiviso in diverse zone dove sono rispettivamente allocati segno della mantissa (bit 1), mantissa (bit da 2 a 5), segno della caratteristica (bit 6), caratteristica (bit 7 e 8):
• il bit 1 e il bit 6 contengono 0 se il segno è + e 1 se il segno è −;
• i bit della mantissa, dal secondo al quinto, contengono quattro cifre (0 oppure 1) che formano il numero m1m2m3m4;
• i bit della caratteristica, settimo e ottavo, possono essere 00, 01, 10 e 11 e rispettivamente rappresentano i numeri in base decimale 0, 1, 2, 3; quindi k = {0, 1, 2, 3}.
Il numero rappresentato è, quindi, −2±k (1 ⋅ 2−1 + m1 ⋅ 2−2 + m2 ⋅ 2−3 + m3 ⋅ 2−4 + m4 ⋅ 2−5).
Se si suppone, per esempio, che nel byte sia rappresentata la stringa 10111011, il numero corrispondente è determinato come segue:
• bit 1: 1 e quindi il segno del numero è −;
• bit 2, 3, 4, 5: 0111 e quindi la mantissa è (1 ⋅ 2−1 + 0 ⋅ 2−2 + 1 ⋅ 2−3 + 1 ⋅ 2−4 + 1 ⋅ 2−5);
• bit 6: 0 e quindi il segno della caratteristica è +;
• bit 7, 8: 11 e quindi la caratteristica è 3.
Il numero rappresentato è perciò −2+3 ⋅ (1 ⋅ 2−1 + 0 ⋅ 2−2 + 1 ⋅ 2−3 + 1 ⋅ 2−4 + 1 ⋅ 2−5) = −5,75.
La notazione esponenziale in base 2 può comportare alcuni problemi di precisione del calcolo. È infatti possibile che un numero, che in base 10 ha un numero finito di cifre decimali e che quindi non sembrerebbe porre problemi di approssimazione, sia periodico se trascritto in base 2 e quindi venga approssimato.