Проверка переполнения и диапазона для арифметических операций

Как мы можем проверить, не превысит ли арифметическая операция верхние границы типа данных, перед ее фактическим применением.

Скажем, верхний предел для краткости в java равен 32767, и я умножаю 328 *на 100, я не могу сравнить с Short.MAX_VALUE, потому что после умножения ответ уже будет переполнен, и ответ будет -32736, что, безусловно, меньше, чемShort.MAX_VALUE

Возьмем другой пример, скажем, я получаю intзначение вычисления 17^10 (17 в степени 10 )в цикле for. Как узнать, на каком этапе мой ответ переполнился.

Эти Shortи int— просто пример. Подумайте об этой проблеме в более широком смысле, что именно можно сделать для всех типов данных.

Я пробовал гуглить, но не нашел хорошей ссылки, которая помогла бы понять концепцию.

9
задан Radu Murzea 4 August 2012 в 11:13
поделиться