Как совместить байты MSB и LSB? - PullRequest
0 голосов
/ 24 октября 2018

Вот мой код для объединения MSB и LSB

public class HelloWorld{

     public void combineMsbLsbByte(){
        System.out.println("Hello World");

     byte msb = 0xC8;
    byte lsb = 0x01;
    int result = (msb << 8) + lsb; 

       System.out.println("Result ="+result);
     }
}

, но я получаю ошибку ниже

ошибка: несовместимые типы: возможное преобразование с потерями из int в байтовый байт MSB = 0xC8;

Полагаю, это происходит из-за диапазона байтов.

Как с этим справиться?

1 Ответ

0 голосов
/ 24 октября 2018

byte - подписанный тип.Его значения находятся в диапазоне от -128 до 127, 0xC8 (200) не находится в этом диапазоне, поэтому вы должны использовать int следующим образом:

    int msb =0xC8;
    int lsb = 0x01;
    int result =(msb << 8) + lsb; 
...