For faster navigation, this Iframe is preloading the Wikiwand page for Underflow aritmetico.

Underflow aritmetico

Da Wikipedia, l'enciclopedia libera.

Un elaboratore presenta un underflow aritmetico nel caso in cui un'operazione aritmetica che utilizza variabili floating point generi un risultato più piccolo della sensibilità dell'elaboratore stesso. Ad esempio dividendo un numero (diverso da zero) per un valore molto grande si ottiene un valore molto piccolo; se è troppo piccolo la macchina non riesce a memorizzarlo correttamente e confonde il suo valore con zero.

Analisi del problema

[modifica | modifica wikitesto]

Dato che le variabili floating point hanno una dimensione predefinita della mantissa, non è possibile memorizzarvi più di un determinato numero di cifre e in caso di sfondamento viene incrementato l'esponente. Ipotizzando una mantissa con cinque cifre significative. Il numero verrebbe rappresentato nel seguente modo:

MANTISSA    ESPONENTE
a b c d e   
3 1 4 1 5   - 4

Ovvero come 31415×10−4

Il numero 125,250 verrebbe invece rappresentato come:

MANTISSA    ESPONENTE
a b c d e   
1 2 5 2 5   1

Sommando i due numeri, a causa della ridotta dimensione della mantissa (e portando i numeri allo stesso esponente) otteniamo il seguente allineamento:

MANTISSA                
a b c d e x x x x x
1 2 5 2 5          
          3 1 4 1 5
--------------------
1 2 5 2 5 - - - - -

Disponendo solo di cinque cifre sulla mantissa, l'intero numero andrebbe perduto nella somma, causando un errore numerico che può propagarsi sensibilmente in caso di successive moltiplicazioni.

Contromisure e possibili soluzioni

[modifica | modifica wikitesto]

Nei programmi si può, in certi casi, ovviare all'underflow aumentando la precisione di calcolo, passando da singola precisione (32 bit) a doppia (64 bit) o quadrupla (128 bit).

Durante l'analisi funzionale del programma è, inoltre, appropriato evitare di effettuare moltiplicazioni dopo la somma di numeri grandi con piccoli. I numeri grandi andrebbero divisi e i piccoli moltiplicati, tenendo ovviamente conto del processo numerico che si intende applicare.

Voci correlate

[modifica | modifica wikitesto]

Collegamenti esterni

[modifica | modifica wikitesto]
  • (EN) Denis Howe, underflow, in Free On-line Dictionary of Computing. Disponibile con licenza GFDL
  • (EN) Approfondimento [collegamento interrotto], su mathworks.co.uk.
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica
{{bottomLinkPreText}} {{bottomLinkText}}
Underflow aritmetico
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?