0xFF
int
,不是
byte
b & 0xFF
利息
算术(Java不允许)-所有数据类型小于
利息
一定有
1
咬入
System.out.println(0xFF); // 255. (only 8 of 32 bits are 1)
System.out.println((int)0xFF); // 255. (only 8 of 32 bits are 1)
System.out.println((byte)0xFF); // -1. (all 8 of 8 bits are 1)
System.out.println((int)(byte)0xFF); // -1. (all 32 of 32 bits are 1)
注意,通过铸造
利息
.因此,下面的代码执行您想要的操作(注意,有一个隐式强制转换
字节
public static void main(String[] args) {
byte b = -1;
System.out.println(String.valueOf(b) + " and " + String.valueOf(b & (byte)0xFF)));
}
-1和-1