I expected a byte to be 8bits of length but I can only fill the array with 4bits values (Ex : 0xF)
See the byte processing reference :
Datatype for bytes, 8 bits of information storing numerical values from 127 to -128. Bytes are a convenient datatype for sending information to and from the serial port and for representing letters in a simpler format than the char datatype. The first time a variable is written, it must be declared with a statement expressing its datatype. Subsequent uses of this variable must not reference the datatype because Processing will think the variable is being declared again.
So my question is why the byte definition declares a 4bits variable ?
Actually you can use up to 0x7F, which is the hex value for 127. And you can use -0x80, hex for -128. So the entire signed range of the byte is definable in hex, it just doesn’t work the way you expect it to.