Объединить два байта в Java / Android - PullRequest
7 голосов
/ 24 мая 2010

у меня кадр 22 байта. Кадр представляет собой входной поток от акселерометра через Bluetooth. Показания акселерометра представляют собой 16-битное число, разделенное на два байта.

Когда я пытаюсь объединить байты с буфером [1] + буфером [2], вместо добавления байтов, результаты просто помещаются рядом поэтому 1 + 2 = 12.

Может кто-нибудь сказать мне, как объединить эти два байта, чтобы получить исходное число. (кстати, байты отправляются с прямым порядком байтов)

Спасибо

Ответы [ 2 ]

22 голосов
/ 24 мая 2010

вот код:

public static short twoBytesToShort(byte b1, byte b2) {
          return (short) ((b1 << 8) | (b2 & 0xFF));
}
0 голосов
/ 22 января 2014

Вот лучший ответ, который может иметь немного больше смысла ...

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

(b2 & 0xFF) получается с точно такой же двоичной структурой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...