Разбить побитово 3 байта и получить значения
Задача: Целое без знака, 3 байта
- 9...0 - Скорость, в дм/с
- 18...10 - Направление, в градусах
- 22...19 - Количество спутников (при захвате более 15 спутников передается 15)
-
23 - Не используется. Равен 0.
short speedByte = buf.getShort();//2 int speed = (speedByte & 0x3FF);
byte b = buf.get();//1 float angle = (speedByte >> 10) + ((b & 0x03) << 7); int count_satellites = b >> 2;
Считает неправильно, где я ошибаюсь? Помогите.
Источник: Stack Overflow на русском