22-位运算符

2020-10-05  本文已影响0人  c88bc9f9d088

    位运算指的是可以直接进行二进制数据的计算处理,主要有:与(&)、或(|)、异或(^)、反码(~)、移位处理。如果先要理解位操作,则一定要清楚十进制与二进制之间的转换处理逻辑:数字除2取余。
13 → 00000000 00000000 00000000 00001101
÷ 2
\underline{6} …… 1
÷ 2
\underline{3} …… 0
÷ 2
\underline{1} …… 1
÷ 2
\underline{0} …… 1

范例:观察与操作,如果两位都是1结果才是1,有1位是0结果就是0

public class JavaDemo {
    public static void main(String [] args){
        int x = 13;
        int y = 7;
        System.out.println(x & y); 
    }
}

13的二进制:00000000 00000000 00000000 00001101
7的二进制: 00000000 00000000 00000000 00000111
    &计算: 00000000 00000000 00000000 00000101 → 5

范例:观察或(|)运算,有1位是1结果就是1,2位都是0的时候结果才是0

public class JavaDemo {
   public static void main(String [] args){
       int x = 13;
       int y = 7;
       System.out.println(x | y); 
   }
}
13的二进制:00000000 00000000 00000000 00001101
7的二进制: 00000000 00000000 00000000 00000111
    | 计算: 00000000 00000000 00000000 00001111       → 15

    在进行位运算处理的时候还可以进行移位的计算。例如:以2的3次方计算为例。

范例:移位处理

public class JavaDemo {
    public static void main(String [] args){
        int x = 2;
        System.out.println(x << 2); 
        System.out.println(x); 
    }
}

2的二进制: 00000000 00000000 00000000 00000010
向左移2位:00000000 00000000 00000000 00001000 → 8

面试题:请解释&和&&、|和||的区别?
· &和|两个运算符可以进行关系运算与逻辑运算:
|- 在进行逻辑运算的时候所有的判断条件都要执行;
|- 在进行位运算的时候只是针对于当前的数据进行与和或处理;
· 在逻辑运算上还可以使用&&、||;
|-&&:在若干个条件判断的时候,如果前面的条件返回了false,后续所有的条件都不再判断最终的结果就是false;
|-||: 在若干个条件判断的时候,如果前面的条件返回了true,后续条件不再执行,最终就是true;

上一篇 下一篇

猜你喜欢

热点阅读