Per la somma è abbastanza semplice ma bisogna usare l'algebra booleana. In pratica devi prendere in considerazione il bit più a sinistra dei due operandi e del risultato.Originariamente inviato da andry85
Salve, devo fare un esercizio che rilevi se avviene overflow per la somma di due numeri. Se si considerano:
int a,b,risultato;
Se setto sia a sia b a dei valori che siano minori del valore massimo scrivibile su un int, e ne faccio la somma (o la moltiplicazione )è possibile che questa (risultato) superi il massimo valore di un int. Il problema è che il risultato, dichiarandolo come int non potrà contenere un numero maggiore del massimo numero scrivibile su un int(ovviamente). Come faccio a rilevare l'overflow???
Scrivi una tabella di verità in cui hai come input i tre bit appena detti e come output l'overflow. Quindi determina la funzione booleana da usare per calcolare l'overflow.
Tra l'altro questa "logica" è spiegata sicuramente bene in tutti i manuali dei microprocessori/microcontrollori dove si parla del flag di overflow.

Rispondi quotando