Java位运算,不常用但很有用

public class CalculateTest {

    private static final int A = 60; // 二进制: 0011 1100
    private static final int B = 13; // 二进制: 0000 1101

    // 八进制,以0开头。
    private static final int C = 017; // 15

    // 十六进制,以0x开头。
    private static final int D = 0x1A; // 26

    public static void main(String[] args) {

        // 如果相对应位都是1,则结果为1,否则为0
        System.out.println("A & B = " + (A & B)); // 12 即0000 1100

        // 如果相对应位都是 0,则结果为 0,否则为 1
        System.out.println("A | B = " + (A | B)); // 61 即0011 1101

        // 如果相对应位值相同,则结果为0,否则为1
        System.out.println("A ^ B = " + (A ^ B)); // 49 即0011 0001

        // 按位取反运算符翻转操作数的每一位,即0变成1,1变成0。
        System.out.println("~ A = " + (~ A)); // -61 即1100 0011

        // 按位左移运算符。左操作数按位左移右操作数指定的位数。
        System.out.println("A << 2 = " + (A << 2)); // 240 即1111 0000

        // 按位右移运算符。左操作数按位右移右操作数指定的位数。
        System.out.println("A >> 2 = " + (A >> 2)); // 15 即1111

        // 按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。
        System.out.println("A >>> 2 = " + (A >>> 2)); // 15 即0000 1111

    }
    
}

你可能感兴趣的:(Java,java)