位运算符:针对两个具体的数据值进行运算
基本的位运算符:
位与:& 有0则0
位或:| 有1则1
位异或:^ 相同则为0不同则为1
~反码(按位取反)
移动符号
<<(左移),>>(右移),>>>(无符号右移)
class OperatorDemo{
public static void main(String[] args){
System.out.println(3&4);
System.out.println(3|4);
System.out.println(3^4);
System.out.println(~3);
}
}
位运算符中相关的移动符号:
<<:左移,将最高位舍弃,在右边补0
>>:右移,如果最高符号位是0,在左边补齐0;最高符号位如果是1,左边补齐1
>>>:无符号右移,无论最高符号位是0还是1,始终在左边补齐0
class OperatorDemo{
public static void main(String[] args){
//左移符号有一个结论
//将该符号左边的数据本身乘以2的移动次幂:3*2^2=12
System.out.println(3<<2);
//右移符号有个结论:
//将该符号左边的数据本身除以2的移动次幂:24/2^2
System.out.println(24>>2);
System.out.println(-24>>2);
System.out.println(-24>>>2);
}
}