Рассмотрим следующий код Java:
byte a = -64;
System.out.println(a << 1);
Вывод этого кода -128
Я попытался выяснить, почему это вывод:
64 = 0 1000000 (MSB является знаковым битом)
-64 = 1 1000000 (формат дополнения Tow)
Ожидаемый результат после сдвига: 1 0000000 (это равно 0,потому что MSB - это просто знаковый бит)
Пожалуйста, кто-нибудь объяснит, что мне не хватает.