java中的二进制运算简单理解

package test9;

public class StreamTest {

    public static void main(String[] args) {
        int a = 15;// 0b1111
        int b = 8;// 0b1000
        boolean bool1 = true;
        boolean bool2 = true;

        System.out.println(a ^ b);// 0b1111 ^ 0b1000 = 0b0111 一边为1则取1,其余取0 结果:7
        
        System.out.println(bool1 ^ bool2);// 同为真,或同为假时为假; 否则为真 结果:false

        System.out.println(a & b);// 0b1111 & 0b1000 = 0b1000 两边都为1则取1,其余取0 结果:8

        System.out.println(a | b);// 0b1111 | 0b1000 = 0b1111 两边为1或单边为1则取1,其余取0 结果:15

        System.out.println(b >>> 2);// b / 2 / 2 右移一位除以2,本次移了2次 结果:2
        
        System.out.println(b << 3);// b * 2 * 2 * 2 左移一次乘以2,本次移动3次 结果:64
    }
}

(a ^ b) 结果: 7

(bool1 ^ bool2) 结果: false

(a & b) 结果: 8

(a | b) 结果: 15

(b >>> 2) 结果: 2

(b << 3) 结果: 64

猜你喜欢

转载自www.cnblogs.com/li-yan-long/p/10335973.html