Pregunta

I tiene un marco de 22 bytes. El marco es el flujo de entrada de un acelerómetro a través de Bluetooth. Las lecturas acceleromter son una fracción de número de 16 bits más de dos bytes.

Cuando intento para combinar los bytes con tampón [1] + buffer [2], en lugar de la adición de los bytes, sólo se pone el lado resultados por lado. de modo 1 + 2 = 12.

Podría alguien decirme cómo combinar estos dos bytes para obtener el número original. (Por cierto los bytes se envían poco endian)

Gracias

¿Fue útil?

Solución

Aquí está el código:

public static short twoBytesToShort(byte b1, byte b2) {
          return (short) ((b1 << 8) | (b2 & 0xFF));
}

Otros consejos

Aquí hay una respuesta mejor que podría hacer un poco más de sentido ...

public static short twoBytesToShort(byte b1, byte b2) {
          return (short) ((b1 << 8) | b2);
}

(b2 y 0xFF) sale con el mismo patrón binaria exacta.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top