Передаю данные в 16-ричном виде. Вот посылка
01 0f 00 19 00 00
И дальше в коде разбираю эти данные. Вот код:
ByteBuffer tel=ByteBuffer.wrap(inData);
agg_id = tel.getInt(0);
status = tel.get(4);
Посылка в 10-тичном виде выглядит вот так вот:
1 15 0 25 0 0
Все элементы в int типе. Первый со значением 1 храниться в одном байте. Второй в 2 байтах и третий в 4 байтах. Но в результате в agg_id записывается значение -2 милиона примерно. Хотя должна единица которая храниться в первом байте. Почему так происходит? Может я как то не так понимаю.
Документация к ByteBuffer.getInt утверждает, что считывается четыре байта, что логично для int:
Reads four bytes at the given index, composing them into a int value according to the current byte order.
Считывает четыре байта по заданному индексу, собирая их в целочисленное значение соответственно текущему порядку байтов.
Попробуйте использовать byte get(int index):
agg_id = tel.get(0);
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости