Un número en binario sólo es 0 y 1, la diferencia está en cómo se interpreta.
En tu caso si lo único que quieres es tener dos bytes con el número, no hay ningún problema.
Cita: int i = 65535;
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutput out;
try {
out = new ObjectOutputStream(bos);
out.writeInt(i);
out.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
byte[] int_bytes = bos.toByteArray();
Haciendo esto obtendrás un array de bytes donde los dos últimos bytes se corresponden con los valores en binario de 0 a 65535.
Si tratas de leer su valor desde java, el decimal que aparece no se corresponde porque java trabaja con complemento a 2.
11111111 Para java es -1, no 255, pero si no tienes que hacer ninguna operación con él te da igual.
https://sites.google.com/site/gencor...unsigned-bytes