java 串口数据问题:如何将byte转为无符号数

来源:互联网 发布:化妆品采购数据分析 编辑:程序博客网 时间:2024/06/06 05:58

问题:

byte为有符号字节,表示-128~127之间的数。

java用byte接收到的串口数据,要将之转为相应的无符号数。


解决思路:

data & 0xff

0xff是int,占4个字节,a是byte,占1个字节,进行&操作的细节如下:

    00000000 00000000 00000000 11101010    (data)

&

   11111111 11111111 11111111 11111111    (0xff)

---------------------------------------------------------------------

= 00000000 00000000 00000000 11101010

即保留了data所占的后八位,但int为32位,其最高位为0,表示正数。则把byte转为了相对应的无符号int。


解决方案:

public static Integer byteToUnsignedInt(byte data) {
return data & 0xff;
}

0 0