Overflow aritmeticoUn 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. DescrizioneOgni 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 è 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). Complemento a dueIl 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:
Voci correlateCollegamenti esterni
|