日期:2014-05-19  浏览次数:20830 次

关于java复合赋值的问题?求详细解释哈。
byte number=-23;
  number &=0xF0;
  number >>=4;
  System.out.println("number1:"+number);
  number=-23;
  number = (byte)((number & 0xF0) >> 4);
  System.out.println("number2:"+number);

输出:number1:-2
  number2:14

------解决方案--------------------
其实就是 自X 运算符。

比如:
 += 自增运算 
 &= 自与运算(& 是位运算中的 与)
 >>= 自优异运算 (>> 是位运算中的 右移)


规律也是一样的:
number &= 0xF0;
相当于:
number = (byte) (number & (等式右侧));