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

Restar enteros y verificar desbordamiento en un programa Java

Para verificar el desbordamiento de Integer, necesitamos verificar el resultado de la resta con Integer.MAX_VALUE. Aquí, Integer.MAX_VALUE es el valor máximo de los enteros en Java.

Veamos un ejemplo donde se restan enteros y si el resultado es mayor que Integer.MAX_VALUE, se lanza una excepción.

A continuación, se muestra un ejemplo de cómo verificar el desbordamiento de Integer.

Ejemplo

public class Demo {
   public static void main(String[] args) {
      int val1 = 9898999;
      int val2 = 8784556;
      System.out.println("Valor1: \+val1);
      System.out.println("Valor2: \+val2);
      long sub = (long)val1 - (long)val2;
      if (sub > Integer.MAX_VALUE) {
         throw new ArithmeticException("¡Desbordamiento!");
      }
      //Mostrar el resultado de la resta
      System.out.println("Resultado de la resta: "+(int)sub);
   }
}

Resultado de la salida

Valor1: 9898999
Valor2: 8784556
Resultado de la resta: 1114443

En el ejemplo anterior, utilizamos los siguientes dos enteros-

int val1 = 9898999;
int val2 = 8784556;

Ahora, lo convertimos a una resta.

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

Si el resultado es mayor que el valor máximo, se lanza una excepción.

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