逻辑运算符和位运算符
作者:互联网
逻辑运算符
package operator;
//逻辑运算符
public class Demo05 {
public static void main(String[] args) {
//与(and) 或(or) 非(取反)
boolean a=true;
boolean b=false;
System.out.println("a && b:"+(a&&b));//逻辑与运算:两个变量都为真,结果才为true
System.out.println("a || b:"+(a||b));//逻辑或运算:两个变量有一个为真,则结果为true
System.out.println("!(a && b):"+!(a&&b));//如果是真,则变为假,如果是假则变为真
//短路运算
int c=5;
boolean d=(c<4)&&(c++<4);//&&后面部分未执行,当&&前面部分为false,结果为false,出现短路运算
System.out.println(d);
System.out.println(c);//5 验证&&后结果未执行出现短路运算,若执行则结果为6
}
}
位运算符
package operator;
import com.sun.xml.internal.ws.api.model.wsdl.WSDLOutput;
public class Demo06 {
public static void main(String[] args) {
/*
A= 0011 1100
B= 0000 1101
-----------------------------------------
A&B= 0000 1100 全1则1
A|B= 0011 1101 全0则0
A^B= 0011 0001 异或:不一样为1,一样为0
~B= 1111 0010 取反
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(16>>2);// 4 相当于 16/2/2
}
}
标签:逻辑,0000,0011,System,运算符,public,out 来源: https://www.cnblogs.com/molly-5049/p/16207084.html