Blog

It's a Wonderful Life

Java位运算符相关

2016-06-03 20:27 Posted in Learn with 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的幂,指数为右边的操作数