Мне нужно написать программу java, которая будет отправлять байты через последовательный порт. Я использую библиотеку rxtx. Проблема в том, что в Java все подписано, и в одном байте мне нужно отправить 0xfc
, но в Java это подписано, и оно определено как -4. Итак, как я могу сделать unsigned байт в java, так что в одном байте я могу отправить от 0 до 255?Создать беззнаковый байт для использования последовательного порта
0
A
ответ
0
Это будет работать
public static int unsignedToBytes(byte b) {
return b & 0xFF;
}
3
Все в порядке - вы можете просто бросить по мере необходимости. Если у вас есть API, который позволяет отправлять байты, и вы отправляете байт -4 в Java, то бит бит будет таким же, как для байта без знака 0xfc.
Если у вас есть значение как int
или short
в диапазоне 0-255, просто бросить, что byte
, и снова он будет представлять собой правильный битовый шаблон, даже если значение будет отрицательным, если исходное значение было выше 127.
0
За байт b
, b & 0xFF
будет возвращать целое значение без знака .. это будет хорошо для вас ??
спасибо Jon тарелочкам! –