一、位运算符
位运算符就是把数值的二进制里面的位上面的0和1来比较或运算。0为false,1为true。
&(与) |(或) ~(非) ^(异或) <>(向右位移) >>>(无条件向右位移)
&(与) 两边位数都为1(true)则给1(true),不用则给0(false)例如:56&98
56 0111000 & 98 1100010
结果 0100000
|(或) 两边有一边为1(true)就给1(true),否则给0(false)例如56|98
56 0111000 | 98 1100010
结果 1111010
~是取反的意思,在二进制里每一位都取反值:
例如98的二进制为:
00000000000000000000000001100010
每个位上取反值:
11111111111111111111111110011101
System.out.println(~98);
结果为:-99
^异或就是不等于的意思,判断两个数值在位上不相同则给1,相同给0.
例如:98^56
98 1100010
^
56 0111000