&0xff

这个一般用于byte和int之间进行转换,说通俗点,java的二进制计算采用的是不是原码,是补码,以-1为例,补码是11111111,byte是一个字节,int是4个字节,如果强转,会自动补位,前面全部补1,最后结果就是65535,&0xff操作之后就是255,这样就避免了误差。

public static void main(String args[]) {
        
        System.out.println(Integer.toBinaryString(-1));
        System.out.println(Integer.toBinaryString(-1 & 0xff));

}
posted @ 2013-03-06 16:56  息搏  阅读(238)  评论(0)    收藏  举报