【发布时间】:2014-08-21 12:55:28
【问题描述】:
学习 JAVA,我试图测试 while 循环的上限,该循环不断增加 int。请参阅下面的程序:
public class Test {
public static int a(){
int a = 10;
while(a > 9 )
++a;
return a;
}
public static void main(String[] argc) {
Test t = new Test();
int k = t.a();
System.out.println("k = "+(1 * k));
}
}
我知道 32 位的范围是从 -2,147,483,648 到 2,147,483,647,因此在此基础上,我期望输出为 2,147,483,647,但我得到的是:
k = -2147483648
我什至尝试过
System.out.println("k = "+(1 * k/2));
但输出仍然是:
k = -1073741824
问题:
为什么解应该是正的却是负的?
【问题讨论】: