Blog
It's a Wonderful Life
Java位运算符相关
~
:按位取反
^
:按位异或(数值不同才为1
&
:按位与
|
:按位或
>>
和>>>
的区别
>>
和>>>
分别为算术右位移和逻辑右位移,位移的结果是运算符左边的操作数被2的幂来除,指数为运算符右边的操作数。
如
128»1 gives 128/2^1 = 64
256»4 gives 256/2^4 = 16
-256»4 gives -256/2^4 = -16
算数位移和逻辑位移的主要区别是算数位移保留符号位,由于溢出而不足的高位部分由符号位的复制来补充。而逻辑位移则不保留符号位,高位补0.
<<
运算符
<<
为算数左位移,位移的结果是左边的操作数乘以2的幂,指数为右边的操作数