java逻辑运算符 位运算符

 1 package operator;
 2 
 3 public class Demo2 {
 4     public static void main(String[] args) {
 5         // 逻辑运算
 6         //&& || !
 7         //与(and)   或(or)    非(取反)
 8         boolean a = false;
 9         boolean b = true;
10         System.out.println(a&&b);
11         // && 只有a和b一样是真的时候才会为真 否则为假
12         System.out.println(a||b);
13         // || a和b有一样是真的时候就为真
14         System.out.println(!(a&&b));
15         //如果是真,则返回假;如果是假,则返回真
16 
17         /*
18         短路运算
19         可以用现实的电路短路理解
20         例 10行代码  System.out.println(a&&b);
21         a的值是false 在(a&&b) 算到a是false的时候  后面的代码就不会再继续运行
22         下面用实例证明
23          */
24         int num = 5;
25         System.out.println(num<4&&num++>4);
26         System.out.println(num);
27         //可以看到  后面的num++没有执行
28 
29         /*
30         位运算
31         多用于和二级制打交道
32         A = 0011 1100
33         B = 0000 1101
34 
35         A&B = 0000 1100 只有两个对位的数一样时才会得到1
36         A|B = 0011 1101 两个对位的数有一个为1的时候会得到1
37         A^B = 0011 0001 两个对位相同的时候为0,不同的时候为1
38         ~B = 1111 0010 取反
39          */
40 
41         //左移 右移
42         /*
43         0000 0000 0
44         0000 0001 1
45         0000 0010 2
46         0000 0011 3
47         0000 0100 4
48         0000 1000 8
49         0001 0000 16
50          */
51         System.out.println(2<<3);//值为16   在二进制往前移动3位
52         System.out.println(8>>2);//值为2    在二进制往后移动2位
53         //面试题 2*8怎么算最快  就是此解
54 
55     }
56 }

 

上一篇:Python3 运算符


下一篇:java中的 |=、&=、^=