Java中的整型是有符号的。但是,如果你使用的值不可能是负值,并E实际需要额外一个比特,那么你可以使用将数值翻译成无符号类型的方法。例如,不用范围为-128127的byte类型值,你可能需要的范围为0255的值。你可以将数值存储在byte中,源于二进制运算的本质,某些操作,例如加和减可以工作。对于其他操作,调用Byte.toUnsignedInt(b)
方法,可以获得0~255的整数值。
其中这个方法的源码是
public static int toUnsignedInt(byte x) {
return ((int) x) & 0xff;
}
可以得到这个方法本质上就是将其转化为整型数据之后,然后与11111111
进行按位与
其中这个计算的方法是先将这个x写成二进制的时候,然后我们用这个原码的补码进行与11111111
进行按位与运算