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

时间:2021-07-01 01:24:11
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