请大家解释一个JAVA表达式:array[index] &= ~PACKET; 2009-4-16 11:05 提问者: nbkhic | 浏览次数:882次
请大家解释一个JAVA表达式:array[index] &= ~PACKET;

在Sun给的源代码里面看见的,一时没反应过来是什么意思,不知道哪位能帮忙解答一下。问题补充: 

另外再请问一段代码
private int indexOffset(int move) {
        switch (move & 3) {
        case LEFT:
            return -1;

        case RIGHT:
            return +1;

        case UP:
            return -width;

        case DOWN:
            return +width;
        }

        return 0;
    }
其中的switch (move & 3)括号里的内容我弄不明白,貌似括号里只能是变量,但是move & 3似乎是表达式吧。
还请高人给以解惑啊,不胜感激
我来帮他解答 输入内容已经达到长度限制还能输入 9999 字插入图片删除图片插入地图删除地图插入视频视频地图不登录也可以回答
参考资料:提交回答取消
       2009-4-16 11:13 满意回答 (1)java里面a = a + b;可以写成
a += b;这个应该知道吧。

(2)& 和 ~都是位操作符比如:
 int a =1;
 int b= 2;
 a &= ~b; // 等效于 a = a & (~b);
 System.out.println(a);

这个位运算你可以这样看。。。a = 1 = 001(8进制)
                        b = 2 = 010(8进制)
                        ~b = ~(010) = 101
                         然后是a 和 b 与运算。结果是 a & ~b = 001 & 101 = 001 = 1
所以 a &= ~b = 1;