Создать байт без знака для использования последовательного порта

Мне нужно написать java-программу, которая будет отправлять байты через последовательный порт. Я использую библиотеку rxtx. Проблема в том, что в Java все подписано, и в одном байте мне нужно отправить 0xfc, а в Java это подписано, и определяется как -4. Итак, как мне сделать беззнаковый байт в java, чтобы в одном байте я мог отправить от 0 до 255?


person Шијаковски Глиг&    schedule 26.06.2013    source источник


Ответы (3)


Это будет работать

public static int unsignedToBytes(byte b) {
    return b & 0xFF;
}
person Ruchira Gayan Ranaweera    schedule 26.06.2013

Ничего страшного - можно просто кинуть куда надо. Если у вас есть API, который позволяет вам отправлять байты, и вы отправляете байт -4 в Java, шаблон битов будет таким же, как для беззнакового байта 0xfc.

Если у вас есть значение как int или short в диапазоне 0-255, просто приведите его к byte, и снова оно будет представлять правильный битовый шаблон, даже если значение станет отрицательным, если исходное значение было выше 127.

person Jon Skeet    schedule 26.06.2013

Для байта b b & 0xFF вернет целочисленное значение без знака. Это вас устроит??

person stinepike    schedule 26.06.2013