Как я могу проверить, приведет ли умножение двух чисел в Java к переполнению?

Я хочу обработать особый случай, когда умножение двух чисел вызывает переполнение. Код выглядит примерно так:

int a = 20;
long b = 30;

// if a or b are big enough, this result will silently overflow
long c = a * b;

Тот'упрощенная версия. В реальной программеa а такжеb получены в другом месте во время выполнения. То, что я хочу достичь, это что-то вроде этого:

long c;
if (a * b will overflow) {
    c = Long.MAX_VALUE;
} else {
    c = a * b;
}

Как вы думаете, я лучше всего это код?

Обновить:a а такжеb всегда неотрицательны в моем сценарии.

Ответы на вопрос(13)

Ваш ответ на вопрос