java - 为什么 int 变量值在 Integer.MIN_VALUE 处并递减时设置为 Integer.MAX_VALUE

标签 java integer operators

经过this之后问题,我心里有另一个。 问题:为什么整型变量值设置为 Integer.MAX_VALUE .

例如。

int x = Integer.MIN_VALUE;
x--;
if (x == Integer.MAX_VALUE) {
    System.out.println("Why....");
}

必须有某种原因来显式实现此行为,否则会抛出 Exception将是一个更好的主意。我无法在 JLS 中找到/定位此行为。

最佳答案

由于下溢。计算机已经这样工作了很多年,在这里抛出异常将是一个可怕的想法。

关于java - 为什么 int 变量值在 Integer.MIN_VALUE 处并递减时设置为 Integer.MAX_VALUE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18894281/

相关文章:

java - 如何使用特定基数将任何有效字符串解析为整数?

java - 加速 HashSet 和 HashMap 性能

c - C运算符的执行顺序

C# 三元 if 运算符给出可空 double 问题

java - 如何使用 JUnit 测试 Java 中的任何输出

java - 对象不是此 Realm 的架构的一部分

ios - 在 Swift 中使用带整数的枚举

c++ - int64_t 的定义

c - && 在 C 编程语言中的行为

java - 检查字符串中特定单词的数量