title: Wire.read return signed or unsigned value
body: <p>I am writing for Arduino and I use the <a href="http://en.wikipedia.org/wiki/I%C2%B2C" rel="nofollow">I²C</a> protocol. When <code>Wire.read()</code> returns an int, what is this int? Is it signed or unsigned?</p>
  
  <p>At the Arduino official site it says that it returns a byte. So I think it is unsigned because they do not say sbyte or signed byte. If the register I read with <code>Wire.read()</code> has values (signed) that are saved with the <a href="http://en.wikipedia.org/wiki/Two%27s_complement" rel="nofollow">two's complement</a> method, how can <code>Wire.read()</code> understand it?</p>
  
  <p>Is the return value always signed? Or does it depend?</p>
  
  <p>Also, by reading and printing the value I get negative numbers, so that means that <code>wire.read()</code> returns an signed int. </p>