Zusammenführen von zwei Bytes in Java / Android
Frage
ich einen Rahmen von 22 Byte haben. Der Rahmen ist der Eingangsstrom von einem Beschleunigungsmesser über Bluetooth. Die acceleromter Ablesungen sind eine 16-Bit-Zahl aufgeteilt auf zwei Bytes.
Wenn ich versuche, das Bytes mit Puffer zu fusionieren [1] + buffer [2], anstatt die Bytes hinzufügen, es setzt nur die Ergebnisse nebeneinander. so 1 + 2 = 12.
Kann mir jemand sagen, wie diese zwei Bytes zu kombinieren, um die ursprüngliche Zahl zu erhalten. (Btw das Bytes gesendet Little-Endian)
Danke
Lösung
Hier ist der Code:
public static short twoBytesToShort(byte b1, byte b2) {
return (short) ((b1 << 8) | (b2 & 0xFF));
}
Andere Tipps
Hier ist eine bessere Antwort, die ein wenig mehr Sinn ...
machen könntepublic static short twoBytesToShort(byte b1, byte b2) {
return (short) ((b1 << 8) | b2);
}
(b2 & 0xFF) kommt mit den gleichen genauen binären Mustern.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow