Notazione Scientifica, o esponenziale, con base 10

La notazione scientifica esprime ogni numero come composto da una parte intera unitaria e un certo numero di cifre decimali (cifre significative), moltiplicato per la base elevata ad un esponente (ordine di grandezza). Lo scopo di questa notazione e’ quello di eliminare dalla rappresentazione dei numeri tutti quegli zeri che non sono significativi (tutti quelli a sinistra della virgola per i numeri interi molto grandi (maggiori di 1) e tutti quelli a destra per i numeri decimali molto piccoli (minori di 1).

Per esempio (in base 10):

Normale

Scientifica

Verifica

127

1.27 * 102

1.27 * 100 = 127

127000

1.27 * 105

1.27 * 100000 = 127000

0.00000000127

1.27 * 10-9

1.27 / 1000000000 = 0.00000000127

1.270001

1.270001 * 100

100 = 1, segue identità

Ovvero, rispetto alla notazione normale, bisogna contare il numero di posizioni di cui bisogna spostare la cifra più significativa per farla diventare la prima cifra a sinistra della virgola, e questo numero diventa l’esponente (positivo se sposto a sinistra, negativo se sposto a destra).

Notare che un esponente negativo equivale a dividere il numero per la base elevata all’esponente positivo.

 

Notazione in virgola mobile, o normalizzata, con base 2

In base 2 (binario) la logica è la stessa, con alcune differenze marginali che riguardano il modo in cui sono memorizzati i bit ma non la base matematica sottostante.

Per cui, per esprimere i numeri con la notazione in virgola mobile dei computer i passi sono:

  1. Convertire i numeri in binario (e diventerà la mantissa)
  2. Contare il numero di bit che compongono la parte intera della mantissa (e diventerà l’esponente)
  3. Aggiungere il segno sia per la mantissa che per l’esponente
  4. Riempire di zeri fino a raggiungere il numero di bit richiesti, a destra per la mantissa (si tratta di un numero a destra della virgola, per cui non sto modificando il valore!!! Per esempio 0.2 = 0.200, in decimale) e a sinistra per l’esponente (è un numero intero, per cui anche qui non sto modificando il valore. Es. 512 = 000512)

Nel caso di numeri con cifre decimali, il passo 1 può presentare difficoltà in quanto non siamo abituati a effettuare questo tipo di conversione, inoltre un numero decimale in base 10 con rappresentazione finita può avere in binario una rappresentazione infinita (ad esempio periodica).

Esempi (considerando 1 bit per i segni, 8 per la mantissa, 4 per l’esponente):

 

Calcoli

Rappresentazione finale

Numero

Binario

Spostamento

Esponente

Segno

Mantissa

Segno

Esponente

+106

+1101010

7

+7

0

11010100

0

0111

-102

-1100110

7

+7

1

11001100

0

0111

-13.5

-1101.1

4

+4

1

11011000

0

0100

0.375

+0.011

-1

-1

0

11000000

1

0001

 

Calcolare la rappresentazione binaria di un numero decimale.

Il procedimento è simile a quello per convertire i numeri interi, solo che si considerano potenze negative del due. Ovvero, chiamando X il numero, N la potenza del due, R il resto della sottrazione tra X e N, e partendo da un esponente –1 (2-1 = 0.5),

  1. Verifico se X è maggiore di N
  2. Se X>=N, calcolo R = X – N e scrivo 1 nella rappresentazione binaria
  3. Se invece X<N, calcolo R = X e scrivo 0 nella rappresentazione binaria
  4. Calcolo X = R
  5. Se X = 0 mi fermo, altrimenti torno al passo A e continuo

Esempi:

X

Esponente

N

X>N?

R

Output

0.5

-1

0.5

Si

0

1

Il numero finale in binario è: 0.1

X

Esponente

N

X>=N?

R

Output

0.375

-1

0.5

No

0.375

0

0.375

-2

0.25

Si

0.125

1

0.125

-3

0.125

Si

0

1

Il numero finale in binario è: 0.011

X

Esponente

N

X>=N?

R

Output

0.683

-1

0.5

Si

0.183

1

0.183

-2

0.25

No

0.183

0

0.183

-3

0.125

Si

0.058

1

0.058

-4

0.0625

No

0.058

0

0.058

-5

0.03125

Si

0.02675

1

0.02675

-6

0.015625

Si

0.011125

1

0.011125

-7

0.0078125

Si

0.0033125

1

0.0033125

-8

0.00390625

No

0.0033125

0

Il numero finale in binario è: 0.10101110…

Home

Data ultima revisione: mercoledì 1 settembre 1999