<< 左移
>> 右移
&(与) 任何二进制位和0进行&运算,结果是0;
和1进行&运算,结果是本身。
|(或) 任何二进制位和0进行|运算,结果是原值;
和1进行|运算,结果是1.
^(异或) 任何相同二进制进行^运算,结果是0;
不相同的二进制位运算结果是1.
或者可以记为:
位与(&):两个1则为1;
位或(|):两个为0则为0;
位异或(^):相同为0,不同为1;
案例:
public class Wei{
public static void main(String[] args) {
//左移:转为二进制位,左边去掉两个0,右边补两个0
//右边:转为二进制位,右边去掉两个0,左边补两个0
System.out.println(5<<2);//左移 5化为二进制是00000101,左移则为00010100,化为十进制20
System.out.println(2>>2);//右移 2化为二进制是00000010,右移则为00000000,化为十进制0
int a = 8;
System.out.println(a>>2);//右移;2
System.out.println(a<<2);//左移;32
//2的二进制是:10
System.out.println(2&2);//2
System.out.println(2|2);//2
System.out.println(2^2);//0
a=2;
//2的二进制:00000010 1的二进制:01
System.out.println(a<<4);//左移,00100000,化为十进制:32
System.out.println(2&1);//0
System.out.println(2|1);//3
System.out.println(2^1);//3
}
}