位运算符(了解即可):
把操作数转为二进制,对二进制的操作数进行某种规则的运算,最终得到的二进制的结果再转为十进制
一下三个运算符,当操作数为Boolean类型作为逻辑运算符,操作数为整数,作为位运算符
&:两边的操作数转为二进制,同一个位置的两个数,一个为0就是0,两个都为一才是1,结果转为十进制
|:两边的操作数转为二进制,同一个位置的两个数,一个为1就是1,两个都为0才是0,结果转为十进制
^ :两边的操作数转为二进制,同一个位置的两个数,相同为0,不同为1,结果转为十进制
位移运算符
<< 左移 : 第一个操作数转为二进制,向左移动第二个操作数个位置,空位补0,结果转为十进制
>> 右移 : 第一个操作数转为二进制,向右移动第二个操作数个位置,移出的位置舍弃,结果转为十进制
规律:
左移: 相当于*2的倍数 a<<b ==> a*2^b
右移: 相当于/2的倍数 a>>b ==> a/2^b
位运算符的执行效率较高,因为针对二进制的数据
当想要对2或者2的倍数进行乘除,建议使用位移运算符效率更高
条件运算符:
Boolean表达式: ? 值1:值2
boolean表达式 : 值为boolean类型的表达式
1)计算表达式,得到一个boolean结果
2)如果结果为true,条件运算符结果为值1
3)如果结果为false,条件运算符结果为值2
boolean x = true?true:false?false:false;
boolean y = (true?true:false)?false:false; //自左向右结合
boolean z = true?true:(false?false:false); //自右向左结合
//y=false z=true
System.out.println(x);
System.out.println(y);
System.out.println(z);