Полагаю, вы имели в виду byte
, а не short
, поскольку short
имеет диапазон от -32768 до 32767.
Похоже, что для целочисленных типов (включаяshort
), отрицательное число представляется битом со знаком, а остальное число - как обычно.Таким образом, -1
будет представлено как 1000.0001
(точка добавлена для удобства чтения).Это, однако, неверно.
В действительности, -1
представляется как 1111.1111
, а 1000.0000
на самом деле -128
(а не -0
, который не существует для этого типа).Это сделано для того, чтобы поддерживать арифметику одинаковой для всех значений.