Voglio gestire il caso speciale in cui la moltiplicazione di due numeri insieme causa un overflow. Il codice ha un aspetto simile a questo:
int a = 20;
long b = 30;
// if a or b are big enough, this result will silently overflow
long c = a * b;
Questa è una versione semplificata. Nel programma reale a
e b
sono reperiti altrove in fase di esecuzione. Quello che voglio ottenere è qualcosa del genere:
long c;
if (a * b will overflow) {
c = Long.MAX_VALUE;
} else {
c = a * b;
}
Come suggerisci di codificarlo al meglio?
Aggiornamento: a
e b
sono sempre non negativi nel mio scenario.