java int的最大值

hu山

来自Java文档int has a minimum value of -2,147,483,648 and a maximum value of 2,147,483,647 (inclusive)

我上课Test.java

public class Test
{
    public static void main(String[] args)
    {
        int i=2147483647; //max positive value an int can store
        for(;;)
        {
            System.out.println(++i);
        }
    }
}

据我所知,++i应该将的值增加i1并引发异常,因为2147483648不允许int

但是,当我在上面的程序中运行时,它开始运行(由于无限循环),而不是将值递增到2147483648而是将赋值给iis -2147483648,并且每次将值递减1

样品运行(修改类后)

public static void main(String[] args)
{
    int i=2147483647;
    for(;;)
    {
        System.out.println(++i);
        System.out.println(++i);
        System.out.println(++i);
        System.out.println(++i);
        System.out.println(++i);
        break;
    }
}

输出:

-2147483648
-2147483647
-2147483646
-2147483645
-2147483644

答案/提示将不胜感激。

乔恩·斯基特

据我所知,++ i应该将i的值增加1并引发异常,因为int中不允许2147483648。

您的理解不正确。整数算法在Java中无提示地溢出。

JLS的15.18.2节开始

如果整数加法溢出,则结果是数学和的低阶位,以某种足够大的二进制补码格式表示。如果发生溢出,则结果的符号与两个操作数值的数学和的符号不同。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

java int的最大值

来自分类Dev

使用递归计算2D int数组内部路径的最大值-Java

来自分类Dev

Java 8查找最大值

来自分类Dev

在Java中获取最大值sql

来自分类Dev

获取Java字符的最大值

来自分类Dev

计算Java Double(5)的最大值?

来自分类Dev

数组中的Java最小值和最大值

来自分类Dev

Java:方法查找位置而不是数组最大值的值

来自分类Dev

在Java中计算最小值和最大值?

来自分类Dev

输入数组java的最小值和最大值?

来自分类Dev

打印INT的最大值

来自分类Dev

获取Java数组中n个最大值的索引

来自分类Dev

使用Java 8获取属性的最大值

来自分类Dev

Java持续时间的最大值是多少

来自分类Dev

Java流最大值与平均值

来自分类Dev

从Java的每一列中获取最大值?

来自分类Dev

将Java增量超过最大值时的行为

来自分类Dev

数组中的Java泛型最大值

来自分类Dev

Java Spring 最大值 上传大小限制

来自分类Dev

获取几个int参数的最大值

来自分类Dev

需要 int 中的最大值

来自分类Dev

2d数组java中的最小值和最大值

来自分类Dev

Java根据什么基础找到String数组的最大值和最小值?

来自分类Dev

Java:计算(和“移除”)二维数组的最大值/最小值

来自分类Dev

使用半已知键在ArrayList的HashMap中查找最大值和最小值-Java

来自分类Dev

在Java 2D数组中查找最大值和最小值

来自分类Dev

如何从Java中的多列集合中获取最大值和最小值

来自分类Dev

从文本文件读取整数,获取最小值/最大值-Java

来自分类Dev

如何在Java中搜索最大值和最小值