Java位运算总结

二进制

要明白位运算必须搞清楚二进制,下面是十进制转二进制的方法。

  1. 正数详见“听风吹雨”的博客,这篇文章已经讲得非常完整和详细。

  2. 负数

    第一步:将正数部分按上述方法转为二进制,比如-5,取5=0000 0000 0000 0000 0000 0000 0000 0101

    第二步:取反1111 1111 1111 1111 1111 1111 1111 1010

    第三步:补码(即加1)得1111 1111 1111 1111 1111 1111 1111 1011

位运算

Java提供的二元位运算符有:左移( << )、右移( >> ) 、无符号右移( >>> ) 、位与( & ) 、位或( | )、位非( ~ )、位异或( ^ ),除了位非( ~ )是一元操作符外,其它的都是二元操作符。

名称 运算符 分类 口诀
左移 << 二元操作符 低位补0
右移 >> 二元操作符 高位补0
无符号右移 >>> 二元操作符 正数高位补0,负数高位补1
位与 & 二元操作符 同1为1,否则为0
位或 | 二元操作符 有1为1,否则为0
位非 ~ 一元操作符 取反
位异或 ^ 二元操作符 不同为1,否则为0

详细例子与介绍,这也有一篇CSDN博客