int +1の最大値に関する質問

 

次のコードの結果は何ですか?

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です。

 

おすすめ

転載: blog.csdn.net/qq_41048982/article/details/109232826