次のコードの結果は何ですか?
public class t1 {
public static void main(String[] args) {
int i=10;
while(i>0){
i = i +1;
if(i==10){
break;
}
}
System.out.println("i=" + i);
}
}
i = -2147483648
理由:
01111111 11111111 11111111 11111111
00000000 00000000 00000000 00000000
-------------------------------------------------- ------------------
10000000 00000000 00000000 00000000
符号ビットから判断すると、最上位ビットは負の数である1です。しばらくして判断から飛び出し、2進数から10進数に変換します。結果はi = -2147483648です。