如何读取Java中的负字节值小于-128

5 java types core xmodem

我正在使用串口从另一个系统读取数据.我正在读取133字节的数据包.第二个字节是包号,第三个字节是包号的负值.

问题是,该类型byte的范围是-128到127.当我试图读取-129(字节的范围外),它会得到的值作为127.

我应该怎么做才能得到-129?

Pet*_*rey 8

您必须确定您希望字节值具有的范围.如果您希望范围-129到126,例如您可以使用.

int min = 129;
int i = ((b + min) & 0xFF) - min;
Run Code Online (Sandbox Code Playgroud)

BTW你的价值不能超过256.


Pau*_*cks 6

你得到127因为一个字节只有8位,所以值是环绕的.-129不适合java字节.如果要在给定变量中拟合-129,则必须修改程序以至少使用短路.