Una pregunta sobre el valor máximo de int + 1

 

¿Cuál es el resultado del siguiente código?

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

porque:

   01111111 11111111 11111111 11111111

   00000000 00000000 00000000 00000000

-------------------------------------------------- ------------------

  10000000 00000000 00000000 00000000

A juzgar por el bit de signo, el bit más alto es 1, que es un número negativo. Salta del juicio en while y luego convierte de binario a decimal. El resultado es i = -2147483648

 

Supongo que te gusta

Origin blog.csdn.net/qq_41048982/article/details/109232826
Recomendado
Clasificación