14 逻辑运算符 位运算符

逻辑运算符 位运算符

逻辑运算符

package base;

//逻辑运算符
public class demo05 {
   public static void main(String[] args) {
       //与(and) 或(or)   非(取反)
       boolean a=true;
       boolean b=false;

       System.out.println("a && b:"+(a && b));//逻辑与运算,两个变量都为真,结果才为真
       System.out.println("a || b:"+(a || b));//逻辑或运算,两个变量有一个为真,结果为真
       System.out.println("!(a && b):"+!(a && b));//如果是真则变为假,如果是假则变为真

       //短路运算
       //逻辑与运算时,需要两个都为真时才为真,如果第一个就为假,后面的就不会进行运算,直接为假
       int c=5;
       boolean d=(c<4)&&(c++<4);
       System.out.println(d);//false
       System.out.println(c);//5 本来应该输出6 因为短路,所以没有运算

  }
}

位运算符

package base;

public class demo06 {
   public static void main(String[] args) {
       /*
       A = 0011 1100
       B = 0000 1101
       -----------------------
       (A与B)A&B = 0000 1100       上下都为1才是1,否则为0
       (A或B)A|B = 0011 1101       上下都是0结果为0,否则为1
       (亦或运算)A^B = 0011 0001   上下相同则为0,否则为1
       (非A即B)~B = 1111 0010       跟对应值反着来,1为0,0为1

       2*8 = 16 2*2*2*2
       效率极高! 二进制
       左移<<         *2
       右移>>         /2

       0000 0000       0
       0000 0001       1
       0000 0010       2
       0000 0011       3
       0000 0100       4
       0000 1000       8
       0001 0000       16

        */
       System.out.println(2<<3);//16   2*2*2*2
       System.out.println(32>>2);//8   32/2/2
  }
}

 

posted @ 2021-11-25 16:50  我奖金没了  阅读(30)  评论(0编辑  收藏  举报