给大家讲一下逻辑运算符
表示两个数据之间的逻辑关系:
直接看源代码
package operator;
public class Demo05 {
public static void main(String[] args) {
//逻辑运算符
//与(and) 或(or) 非(取反)
boolean a=true;
boolean b=false;
System.out.println("a && b: "+ (b &&a)); //逻辑与运算 两个变量都是真,结果才是true
System.out.println("a || b: "+ (b ||a)); //逻辑或运算 两个变量当中只要有一个是真,结果就是true
System.out.println("! (a && b): "+! (a &&b )); //逻辑或运算 两个变量当中只要有一个是真,结果就是true
//短路运算
int c =5; //以int 为数据类型,自定义变量c ,赋值为5
boolean d = (c <4)&&(c++<4); // 以布尔类型,定义变量d,判断c是否小于4,或者执行++
System.out.println(d); //在我们的定义当中c=5, 5大于4,不大于4,所以前面的条件不成立,进而,后面的东西也不会再执行了
System.out.println(c ); //如果后面的条件成立,输出的结果为6,但是在这种情况下是不可能的
}
}
每一行的代码注释我都已经写的很清楚了
下面讲一下位运算符
package operator;
public class Demo06 {
public static void main(String[] args) {
//位运算符讲解
/*
A=0011 1100 //二进制数字
B=0000 1101 //二进制数字
======================================================================
上面的 A所属的二进制数和下面的B所属的二进制数,上面和下面对应的全是1,最后的结果就是1
其余情况为0,
A&B(与运算) 0000 1100
A/B 0011 1101 (或) 上下都是0,他就是0,如果有一个1,他就是1
A^B 0011 0001 (亦或) 如果上下的数字相同就是0,否则就是1
~B 1111 0010 (取反) 和b列数据相反的数据
2*8=16 2*2*2*2
<< //相当于*2
>> //相当于/2
0000 00000 0
0000 0000 1
0000 0010 2
0000 0011 3
0000 0100 4
0000 1000 8
0001 0000 16
位运算:效率高
*/
}
}
看代码就可以了,这里控制台没有必要看了
注释写的很清楚了,谢谢大家