¿Cómo un valor positivo se vuelve negativo después de emitir un byte en Java?

public class Test1 {

    public static void main(String[] args) {

        byte b1=40;
        byte b=(byte) 128;

        System.out.println(b1);
        System.out.println(b);
    }
}

la salida es

40
-128

la primera salida es 40 entendí pero la segunda salida -128 ¿Cómo es posible? ¿Es posible debido a que excede su rango? si es así, cómo funciona después de la conversión de bytes ... ayúdame

Respuesta 1

Cuando convierte 128 ( 10000000en binario) a un tipo de ocho bits byte, el bit de signo se establece en 1, por lo que el número se interpreta como negativo. Java utiliza la representación de Complemento de Two , por lo que 10000000es -128el número negativo más pequeño representable con 8 bits.

Bajo esta interpretación, se 129convierte -127, se 130convierte -126, y así sucesivamente, hasta 255( 11111111en binario), que se convierte en-1 .

Respuesta: 2

Hola, soy nuevo en programación y me registré en este foro :) Así que creé un pequeño programa con bucles anidados que imprime todas las combinaciones de cinco números que pueden tener un valor de 0 a 5. ...

Supongamos que tengo una lista de intervalos (ordenados por inicio) y quiero dividirlos para tener una lista de grupos de intervalos superpuestos. Entonces, por ejemplo, con Interval como: public class Interval {...

Estoy haciendo un navegador simple. Quiero implementar un cuadro de búsqueda que redirigirá automáticamente a los resultados de búsqueda, por ejemplo, en http://uk.ask.com/ parece bastante simple. Si yo fuera a ...

¡Esto es magia! Mire este código simple: clase pública ArrayOFMagic <T> {matriz protegida T []; protegido int showMeYouRLength () {return array.length; } ArrayOFMagic () {...