Я немного борюсь с двоичным в Java и Python, чтобы перевести программу
В Python, когда я выполняю следующие команды, я получаю
>>> print ord(pack('>H', 32809)[0])
128
>>> print ord(pack('>H', 32809)[1])
41
В Java я ожидаю получить тот же результат при выполнении следующей команды, но ее там нет:
bsh % print ((byte)((32809 & 0xFF00) >> 8));
-128
bsh % print ((byte)(32809 & 0x00FF));
41
Может кто-нибудь объяснить мне, почему 128 отрицательно в Java?
Большое спасибо.