you're right, the
byte primitive in
Java is signed (
data types).
internally (at byte code level) the JVM converts 'byte' and 'short' primitives to type 'int'.
The effect we are seeing here is called "(integer) overflow" and leads to a model of so-called "circular arithmetic",
in which the greatest positive integer is followed by the smallest negative integer.
Why not change the representation to hexadecimal?
HTH
Matt