English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java 프로그램에서 정수를 뺄 때 오버플로우 확인

Integer의 오버플로우를 확인하려면 뺄셈한 정수 결과를 Integer.MAX_VALUE와 확인해야 합니다. 여기서 Integer.MAX_VALUE는 Java의 정수 최대 값입니다.

정수를 뺄셈한 예제를 보여드리겠습니다. 그 결과가 Integer.MAX_VALUE보다 크면 예외가 발생합니다.

Integer의 오버플로우를 확인하는 방법을 보여주는 예제입니다.

예제

public class Demo {
   public static void main(String[] args) {
      int val1 = 9898999;
      int val2 = 8784556;
      System.out.println("값1: "+val1);
      System.out.println("값2: "+val2);
      long sub = (long)val1 - (long)val2;
      if (sub > Integer.MAX_VALUE) {
         throw new ArithmeticException("Overflow!");
      }
      //뺄셈 결과를 표시합니다
      System.out.println("뺄셈 결과: "+(int)sub);
   }
}

출력 결과

값1: 9898999
값2: 8784556
뺄셈 결과: 1114443

위의 예제에서는 다음 두 정수를 사용했습니다.-

int val1 = 9898999;
int val2 = 8784556;

이제, 이를 뺄셈으로 변환합니다.

long sub = (long)val1 - (long)val2;

결과가 최대 값보다 크면 예외를 발생시킵니다.

If (sub > Integer.MAX_VALUE) {
   throw new ArithmeticException("Overflow!");
}