Я читаю данные из другой системы, используя последовательный порт. Я читаю пакеты из 133 байтов. Второй байт - это номер пакета, а третий байт - отрицательное значение номера пакета.Как читать значения отрицательного байта в Java меньше -128
Проблема заключается в том, что тип byte
имеет диапазон от -128 до 127. При попытке чтения -129 (за пределами диапазона байта), это даст значение как 127.
Что я должен делать так что я могу получить -129?
(int) (byteval & 0xFF) он вернет правильные значения после + 127, т. Е. -128 как 128, но я не получаю для нужных значений – 2009-04-27 06:18:45
Ну, конечно. Байтом может быть диапазон любых 256 значений. Если вы знаете, что байт будет равен нулю или больше, он может быть от 0 до 255. Говоря «byteval & 0xFF», вы более или менее говорите компилятору, что это целое число без знака, что означает, что самое низкое число равна нулю. Вы говорите, что у вас есть значение байта, которое заранее известно, чтобы быть отрицательным? –