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

1. 左移( << )

将5左移2位的示例代码:

package com.xcy;
public class Test {
    public static void main(String[] args) {
        System.out.println(5 << 2);
    }
}

运行结果是20。左移的过程是将数字的二进制表示向左移动指定位数,低位补0。

2. 右移( >> )

右移操作与左移相反,是将数字的二进制表示向右移动指定位数,高位补0。

3. 无符号右移( >>> )

无符号右移在移动过程中,无论数字是正数还是负数,高位都补0。

4. 位与( & )

位与操作的示例代码:

package com.xcy;
public class Test {
    public static void main(String[] args) {
        System.out.println(5 & 3);
    }
}

位与操作:两个操作数的对应位都为1时,结果位才为1。

5. 位或( | )

位或操作的示例代码:

package com.xcy;
public class Test {
    public static void main(String[] args) {
        System.out.println(5 | 3);
    }
}

位或操作:两个操作数的对应位中只要有一个为1,结果位就为1。

6. 位异或( ^ )

位异或操作的示例代码:

package com.xcy;
public class Test {
    public static void main(String[] args) {
        System.out.println(5 ^ 3);
    }
}