int 类型的最大十进制文字是 2147483648 还是 2147483647?

hag*_*wal 5 java

根据JLS §3.10.1

int 类型的最大十进制文字是 2147483648。

这个陈述是否可以被认为是正确的,因为Integer.MAX_VALUE2147483647

请注意,上述声明中的重点是“int”。如果有人认为它是在“十进制文字”的上下文中讨论的,那么即使 2147483649如此,也应该是正确的。

所以,如果某物是某种类型,int那么它的最大值必须是2147483647

是我弄错了还是应该更新该声明?

5go*_*der 4

请注意,没有负整数文字,Integer.MIN_VALUE为 -2147483648。因此-2147483648被解析为 \xe2\x80\x9capply 一元减法到 2147483648\xe2\x80\x9d。如果 2147483648 不是有效的十进制int文字或者您无法使用intInteger.MIN_VALUE直接在程序中使用值文字,那将非常糟糕。

\n\n

旁注:JLS定义正确的内容。所以根据定义它是正确的。不过,这可能很糟糕。

\n

  • “显然该声明不是在谈论 -2147483648” - 我认为你错了。请从您停止引用 JLS 的地方继续阅读 (2认同)