Remember, a number is ultimately just a binary number stored inside the computer. It’s how that number is displayed that matters.
Payload data is displayed in Hex bytes, but if you decode it using Payload Functions, it gets stored (and displayed) as a json object, so usually numbers will be printed as decimal.
N.B. Negative numbers tend to cause problems (they are stored as 2’s complement), so you might want to modify you code to add and substract 100 to the temperature.
i.e. in the node: temp = temp + 100;
And in the payload decoding: decoded.Temperature = bytes[0] - 100;
That will give you a range from -100c to +155c, which is pretty safe for air temperature.