Запись числа -128 в Java в двоичном представлении

Есть код:

public class Main{
    public static void main(String[] args) {
        byte a;
        a = (byte)0b1000_0000;
        System.out.println(a + ":\t0b1000_0000");

    }
}

В коде я привожу число -128 к типу byte, так как это литерал типа int. Объясните, почему ( без приведения типа работать не будет ). Разве код не должен работать и без приведения, так как диапазон типа byte [-128/127].

Есть код:

public class Main{
    public static void main(String[] args) {
        byte a;
        a = 0b1000_0000;
        System.out.println(a + ":\t0b1000_0000");

    }
}

Ожидал что работать будет так.


Ответы (1 шт):

Автор решения: Qwertiy

Бинарная константа положительная и, очевидно, в байт не влезает.

→ Ссылка