Unire due byte in java / android
Domanda
Ho una struttura di 22 byte. Il telaio è il flusso di input da un accelerometro via bluetooth. Le letture acceleromter sono un certo numero di divisione 16 bit su due byte.
Quando provo a fondere i byte con tampone [1] + tampone [2], invece di addizionare i byte, appena mette il risultati passo per passo. così 1 + 2 = 12.
Qualcuno potrebbe dirmi come combinare questi due byte per ottenere il numero originale. (Btw i byte vengono inviati little endian)
Grazie
Soluzione
ecco il codice:
public static short twoBytesToShort(byte b1, byte b2) {
return (short) ((b1 << 8) | (b2 & 0xFF));
}
Altri suggerimenti
Ecco una risposta migliore che potrebbe fare un po 'più senso ...
public static short twoBytesToShort(byte b1, byte b2) {
return (short) ((b1 << 8) | b2);
}
(b2 & 0xFF) esce con lo stesso modello binario esatto.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow