Я отправляю шестнадцатеричные значения из Arduino
на Android через Uart
.Я храню полученные байты из буфера byte[]
в длинную строку на стороне Android.И, после сохранения в строке, я хочу преобразовать ее в шестнадцатеричное, или я хочу, чтобы мой массив поддерживал значения выше 128.
, когда я делаю это
byte[] received_byte= string.getBytes();
String received = bytesToHex(received_array);
static String bytesToHex(byte[] hashInBytes) {
StringBuilder value = new StringBuilder();
for (byte b : hashInBytes) {
value.append(String.format("%02x", b & 0xff));
}
return value.toString();
}
Arduino
isотправив это: 2b18021a00011a1a0708403081806f0132140845
полученная строка содержит это: 2b18021a00011a1a07084030efbfbdefbfbdefbfbd6f0132140845
Я знаю, что байты не поддерживают значения выше 128. Я даже пытался изменить полученный_байт в short []
, но проблемас этим моя строка содержит это "+=��@0���o2E"
, так как я непосредственно храню данные непосредственно из буфера byte[]
.
Пожалуйста, дайте мне знать, если я не ясен в моем вопросе.