位运算与运算符优先级
下⾯我们来总结⼀下位运算与运算符优先级
位运算
位运算共有以下⼏种:
1. &(按位与)
2. |(按位或)
3. ^(按位异或)
4. ~(按位⾮)
5. >>(右移)
6. <<(左移)
7. >>>(逻辑右移)
1、&按位与
参与运算的两位都为1,结果才为1(两者只要有⼀个为0,则结果为0)
例如:01&10运算,结果为00
2、|按位⾮
参与运算的两位都为0,结果才为0(两者只要有⼀个不为0,则结果为1)
例如:01|10,结果为11
3、^按位异或
参与运算的两位相等则结果为1,不同则结果为0
例如:01^10,结果为00、01^01结果为11运算符优先级按从高到低排列
4、~按位⾮
将参与运算的位取反,如~000000001,结果为11111110,再将补码转化为原码,我们能看到的数是-2
5、移位运算<<、>>、>>>
这三个运算符的功能⽐较类似,都是移位
写法:例:x>>1(将x右移1位)
因为计算机的计算是通过⼆进制数来完成的,因此,将它左移的过程相当于把这个数乘以2,右移则是除以2
为了保证左移右移不会导致负数变成正数或正数变为负数,因此,左移的过程,符号位不变,右边补0。右移的过程中,符号位为什么就补什么(例如10000001,右移⼀位是11000000)
上述内容对>>>不适⽤,这个符号代表不论符号位为什么,最前⾯都补0,相当于移位之后取绝对值
运算符优先级
运算符                                        综合性
[ ].()(⽅法调⽤)从左向右
!    ~    ++    --    +(⼀元运算)    -(⼀元运算)    (强制类型转换)  new从右向左*  /  %从左向右
+  -从左向右
<<    >>    >>>从左向右
<    <=    >=  >    instanceof从左向右
==    !=从左向右
&从左向右
^从左向右
|从左向右
&&从左向右
||从左向右
:从右向左
=  +=  -=  *=  /=  %=  &=  |=  ^=  <<=  >>=  >>>=从右往左

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。