首页 > 代码库 > java byte&0xFF

java byte&0xFF

做串口端口通讯时,数据都是以byte类型发送的

普通的byte范围是-128-127,而java的byte范围是0-255

因此将数据的byte转成java的byte时,需要与0xff(11111111)做一个&运算,将-128-127转换到java的0-255之间

也就是与 0xff 做 & 运算会将数据 byte 值变成 java的byte 类型的值,也将 -128~0 间的负值都转成正值了。

System.out.println("1的编码:"+Integer.toBinaryString(1));//java中的负数是取补码+1System.out.println("-1的编码:"+(Integer.toBinaryString(-1)));System.out.println("0XFF的编码:"+Integer.toBinaryString(Integer.valueOf("FF",16)));System.out.print("-1 & 0xFF:");System.out.println(-1 & 0xFF);System.out.print("1 & 0xFF:");System.out.println(1 & 0xFF);

打印输出

1的编码:1-1的编码:111111111111111111111111111111110XFF的编码:11111111-1 & 0xFF:2551 & 0xFF:1

 

java byte&0xFF