建设企业网站中国建设银行,建设门户网站多少钱,手机html5免费模板,营销外贸网站建设本文介绍整数数据类型的上溢和下溢以及该问题的处理。 Java 中整数上溢和下溢概述
如果您使用整数值#xff0c;则可能会遇到上溢或下溢错误。 当我们错误地声明变量时#xff0c;就会发生这种情况#xff0c;例如分配的值超出了声明的数据类型的范围。
众所周知#xff…本文介绍整数数据类型的上溢和下溢以及该问题的处理。 Java 中整数上溢和下溢概述
如果您使用整数值则可能会遇到上溢或下溢错误。 当我们错误地声明变量时就会发生这种情况例如分配的值超出了声明的数据类型的范围。
众所周知整数数据类型有四个级别包含不同的大小如下所示
数据类型大小byte8-bitsshort16-bitsint32-bitslong64-bits
如果我们考虑 Java 中的 int它有一个我们可以分配的值范围。 我们已经知道int 数据类型的大小是 32 位 因此int 可接受的值范围在 -2147483648 到 2147483647 之间。
可以使用 Integer.MAX_VALUE 和 Integer.MIN_VALUE 快速获取最大值和最小值。 Java 中的整数溢出
在这里我们将看到整数溢出的发生及其处理。
发生整数溢出
示例代码
public class IntegerOverflow {public static void main(String[] args) {int Intvalue Integer.MAX_VALUE-1;for(int i 0; i 4; i) {System.out.println(Intvalue);Intvalue Math.addExact(Intvalue, 1);}}
}现在当您执行上述程序时控制台将显示以下输出
2147483646
2147483647
Exception in thread main java.lang.ArithmeticException: integer overflowat java.base/java.lang.Math.addExact(Math.java:828)at IntegerOverflow.main(IntegerOverflow.java:9)处理整数溢出
我们需要增加值范围来解决上面的示例。 在我们的例子中我们将整数类型转换为 long。 我们对上述示例的更新代码如下。
示例代码
public class IntegerOverflow {public static void main(String[] args) {int Intvalue Integer.MAX_VALUE-1;long NewValue (long)Intvalue; // Upgrading to new typefor(int i 0; i 4; i) {System.out.println(NewValue);NewValue Math.addExact(NewValue, 1);}}
}现在您将在控制台中看到以下输出。
2147483646
2147483647
2147483648
2147483649Java 中的整数下溢
在本节中我们将了解 Java 中的整数下溢以及如何处理它。
发生整数下溢
示例代码
public class IntegerUnderflow {public static void main(String[] args) {int value -2147483699; // Creating underflow intentionallySystem.out.println(value-1);}
}现在当您执行上述程序时控制台将显示以下输出
/IntegerUnderflow.java:3: error: integer number too largeint value -2147483699; // Creating underflow intentionally^
1 error处理整数下溢
为了解决上述错误我们需要再次增加值的范围为此我们可以将整数值类型转换到下一个级别。 看看下面分享的代码。
示例代码
public class IntegerUnderflow {public static void main(String[] args) {long value (long)-2147483638; // Type CastingSystem.out.println(value-1);}
}现在您将在控制台中看到以下输出。
-2147483639因此我们需要增加数据类型的范围来解决上溢或下溢问题。