Java | 位运算符及三目运算符

70 阅读3分钟

一、位与运算符(&)

位与运算符&对两个操作数的每一位进行逻辑与操作。

如果两个操作数的相应位都是1,则结果的相应位为1;否则为0。

demo:

public class BitwiseAndOperator {
    public static void main(String[] args) {
        int a = 12; // a的二进制表示为1100
        int b = 7;  // b的二进制表示为0111
        int result = a & b; // 按位与操作后,结果为0100,即十进制的4
        System.out.println("按位与的结果是: " + result);
    }
}

二、位或运算符(|)

位或运算符|对两个操作数的每一位进行逻辑或操作。

如果两个操作数的相应位中至少有一个是1,则结果的相应位为1;否则为0。

demo:

public class BitwiseOrOperator {
    public static void main(String[] args) {
        int a = 12; // a的二进制表示为1100
        int b = 7;  // b的二进制表示为0111
        int result = a | b; // 按位或操作后,结果为1111,即十进制的15
        System.out.println("按位或的结果是: " + result);
    }
}

三、位异或运算符(^)

位异或运算符^对两个操作数的每一位进行逻辑异或操作。

如果两个操作数的相应位不相同,则结果的相应位为1;如果相同,则为0。

demo:

public class BitwiseXorOperator {
    public static void main(String[] args) {
        int a = 12; // a的二进制表示为1100
        int b = 7;  // b的二进制表示为0111
        int result = a ^ b; // 按位异或操作后,结果为1011,即十进制的11
        System.out.println("按位异或的结果是: " + result);
    }
}

四、位非运算符(~)

位非运算符~对操作数的每一位进行取反操作。

操作数的每一位1变成0,0变成1。

demo:

public class BitwiseNotOperator {
    public static void main(String[] args) {
        int a = 12; // a的二进制表示为1100
        int result = ~a; // 按位非操作后,结果为0011,由于Java使用补码表示负数,因此结果是-13
        System.out.println("按位非的结果是: " + result);
    }
}

五、左移运算符(<<)

左移运算符<<将操作数的所有位向左移动指定的位数。

左边的位被移出,右边补0。

demo:

public class LeftShiftOperator {
    public static void main(String[] args) {
        int a = 12; // a的二进制表示为1100
        int result = a << 2; // 左移两位后,结果为110000,即十进制的48
        System.out.println("左移操作的结果是: " + result);
    }
}

六、三目运算符

三目运算符是Java中的一个条件运算符

它基于一个条件表达式的结果来选择两个值中的一个。

它的格式如下:

condition ? valueIfTrue : valueIfFalse

如果condition为true,则表达式的结果是valueIfTrue;

如果condition为false,则结果是valueIfFalse。

demo:

public class TernaryOperator {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        // 使用三目运算符来判断a和b的大小,并赋值给max
        int max = (a > b) ? a : b; // 如果a大于b,则max等于a,否则等于b
        System.out.println("最大的值是: " + max);
    }
}

分析demo:

在这个例子中,我们比较了变量a和b的值,并使用三目运算符来找出最大的值。如果a大于b,则max被赋值为a,否则被赋值为b。运行这段代码将输出最大的值是: 20,因为在这个例子中b的值更大。

以上就是本次分享的所有内容,感兴趣的朋友点个关注呀,感谢大家啦~