it's an encoding question. Basically there are different methodologies to store/encode data in binary. A "signed bytes" use 1 bit of a byte to decide if the value is + or -, the "sign". Meaning there are 7 bits to store the data each bit can be one of 2 options 1 or 0. So 2^7 is 128, or 0-127. If the byte is unsigned then you'd have a max value of 255, but you could run into a situation where the temperature drops below 0 and results in a value of 255 degrees instead of the correct -1. My data encoding knowledge is a little rusty but there are some other options like floating point (16 and 32bit) 2's compliment.