Как преобразовать двоичную строку в шестнадцатеричный и отправить через порт Uart в Java - PullRequest
0 голосов
/ 30 сентября 2019

У меня есть двоичная строка, которая выглядит примерно так: 11001111 00011111 11111111, и я хочу преобразовать ее в шестнадцатеричный формат и отправить через Uart в Arduino. Как я могу преобразовать каждый 8-битный в шестнадцатеричный формат без получения значений со знаком, поскольку тип данных байта не поддерживает значения выше 128.

Я делаю это

string b = "110011110001111111111111"
byte[] bval = new BigInteger(b, 2).toByteArray();

Ожидаемый вывод: cf1fff

Поскольку все эти биты соответствуют некоторым данным, изменение данных приводит к изменению поведения на стороне приемника. Пожалуйста, скажите мне, где я ошибаюсь.

1 Ответ

1 голос
/ 30 сентября 2019
String b = "110011110001111111111111";

int decimal=Integer.parseInt(b,2);

String t = Integer.toHexString(decimal);

byte[] bval = t.getBytes();
...