I understand that the stream is read one byte at a time, and without adding information to the stream, the bytes are converted to integers leaving the 24 most significant bits at zero.
Where do the two extra possible values come fromOne extra value. There are 256 possible byte values - 0 to 255. The one extra value is documented in the Javadoc.
and what do they represent?See the Javadoc.
Furthermore, if it is a question of 257 possible values, why is space not saved by returning the values as short primitives.Good question. Who can say? To be fair, I expect that using int is far more efficient on a modern processor, and the space saving will be minimal.
I am not saying that you are wrong;Jolly good.
I clearly do not understand something in the underlying process.See the Javadoc.