【发布时间】:2019-12-10 03:52:01
【问题描述】:
嗨,我对一些代码有一点问题,我无法解释我的结果。
//what happens?
public static void what() {
int number = 2147483647;
System.out.println(number + 33);
}
//Here is my solution for the probleme
public static void what() {
long number = 2147483647;
System.out.println(number + 33);
}
以 int 数字作为变量的第一个代码给了我-2147483616 作为结果。因此,当我将 int 更改为 long 时,我得到了预期的好结果。所以问题是谁能帮我解释为什么 int number + 33 = -2147483616
【问题讨论】:
-
你已经超过了原始数据类型
int的最大容量... -
@deHaar,是的,我知道 int 介于 -2 147 483 648 和 2 147 483 647 之间。仅仅说我超出了限制就足够了吗?
-
您不能将更大的数字打包到
int类型的变量中,如果这样做,您将得到一个int,它从可能的最低值开始向上计数,然后是负数。您可以检查一个数字是否大于最大值。 -
我认为只说超出限制是不够的,因为这并不能解释我们获得的具体结果
标签: java int long-integer