Quiero manejar el caso especial en el que la multiplicación de dos números provoca un desbordamiento. El código se parece a esto:
int a = 20;
long b = 30;
// if a or b are big enough, this result will silently overflow
long c = a * b;
Esa es una versión simplificada. En el programa real a
y b
se obtienen en otro lugar en tiempo de ejecución. Lo que quiero lograr es algo como esto:
long c;
if (a * b will overflow) {
c = Long.MAX_VALUE;
} else {
c = a * b;
}
¿Cómo sugieres que codifique mejor esto?
Actualización: a
y b
siempre son no negativos en mi escenario.