二进制
要明白位运算必须搞清楚二进制,下面是十进制转二进制的方法。
正数详见“听风吹雨”的博客,这篇文章已经讲得非常完整和详细。
负数
第一步:将正数部分按上述方法转为二进制,比如-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博客。