public class IndentifierTest01{
public static void main(String[] args) { int a = 3; int b = 4; System.out.println(a&b);//按位与 System.out.println(a|b);//按位或 System.out.println(a^b);//按位异或 System.out.println(~a);//取反 //移位 int c = 3<<2;//相当于3*2*2 System.out.println(c); System.out.println(12>>1);//相当于12/2
}
}
运行结果:
0 7 7 -4 12 6
1.与运算符,&:只有前后两个运算都为1时,结果才为1.
a: 0011 b: 0010 a&b=0010
2.或运算符,|:有1位为1,结果便为1。
a: 0011 b: 0010 a|b=0011
3.异或运算符,^:不相同则为1.
a: 0011 b: 0010 a^b=0001
4.取反运算符,~:1变0,0变1.
a: 0011 ~a= 1100 b: 0010 ~b= 1101
5.移位运算符,<<, >> : 左移乘2,右移除2,如果超出,则舍弃。
a<<5 移前:0000 1111 = 15 移后:1110 0000 = 224