i <<= 8;-->i的二进制表达列集体左移8位。
i ^= info[2] & 0xff;位与位对齐的做与运算。
这个表达的实质是只保留i的低两个字节内容。

解决方案 »

  1.   

    “ ^= info[2] & 0xff;位与位对齐的做与运算。
    这个表达的实质是只保留i的低两个字节内容”sorry,是低一个字节的内容,就是最后一字节。
      

  2.   

    谢谢“飞跃”!
    不过 i <<= 8  是 i = i << 8 操作的简写
    那 i ^= info[2] & 0xff 是 i = i ^ (info[2] & 0xff) 的意思吗?
    你说道的保留最后一个字节,是不是保留 info[2]中的最后一个字节?还是i中的最后一个字节?麻烦你了!
      

  3.   

    “那 i ^= info[2] & 0xff 是 i = i ^ (info[2] & 0xff) 的意思吗?
    你说道的保留最后一个字节,是不是保留 info[2]中的最后一个字节?还是i中的最后一个字节?麻烦你了!”是info[2]的最后一字节的内容。然后把这个内容再和i做 ^ 运算。
      

  4.   

    举例:
    public class TestLog
    {
        public static void main(String[] args)
        {
            int i1=0xA301;
            int i2=0xff;
            System.out.println(i1&i2);
            int i3=0xF101;//注意是16进制的,不是二进制
            int i4=0xF110;//注意是16进制的,不是二进制
            System.out.println(i3^i4);
        }
    }
    输出分别为:
    1
    17