Loading AI tools
problema relativo alle operazioni eseguite sui numeri da un calcolatore Da Wikipedia, l'enciclopedia libera
Un overflow aritmetico è un problema relativo alle operazioni eseguite sui numeri da un calcolatore ed è dovuto all'impossibilità di quest'ultimi di memorizzare numeri di dimensione arbitrariamente grande. Esso si verifica quando il risultato di un'operazione tra numeri eccede il valore massimo rappresentabile con bit fissati a disposizione in memoria.
Ogni bit, per definizione, può assumere in modo esclusivo i valori 1 e 0; con bit a disposizione, possiamo memorizzare un valore massimo pari a (esempio: per , il massimo valore rappresentabile è , ossia 15, la cui rappresentazione binaria è 1111
). Nell'esempio dato, si verificherebbe overflow se a tale numero (1111
) si sommasse 1. Il valore ottenuto diverrebbe 1 0000
(16, secondo il sistema decimale), impossibile da rappresentare su 4 bit. Siccome il numero di bit a disposizione è pre-impostato (nel nostro caso è 4, minore di 5), il bit più significativo andrebbe perso. Il valore memorizzato, pertanto, diverrebbe 0000
, il quale codifica per il valore 0 (dunque non 16).
L'overflow viene solitamente ottenuto mediante somme di due numeri positivi estremamente grandi, in seguito alle quali la macchina restituisce un risultato negativo (matematicamente assurdo). Ugualmente, in caso di somme tra due numeri negativi estremamente piccoli, ci si può aspettare come risultato un numero positivo (in questo caso si tratterebbe di underflow). Il bit in più che viene "buttato" dalla macchina spesso rappresenta il segno del numero (1 nel caso sia negativo) quindi nel trabocco il numero perde il segno diventando positivo quando magari ci si aspettava un negativo (o viceversa).
Il complemento a due è un metodo informatico di rappresentazione numerica spesso utilizzato per facilitare operazioni di somma e differenza tra numeri relativi. Il numero di bit destinati alla rappresentazione è pre-impostato dal programmatore nella cosiddetta fase di dichiarazione delle variabili, nonché dal linguaggio di programmazione stesso e dalla macchina su cui il codice viene eseguito. Per somme algebriche di numeri binari rappresentati in complemento a due si verifica overflow quando:
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.