逻辑运算符:
1."&" and “&&”
"&":逻辑与;
"&&":短路与;
区别:都表示“与”的逻辑关系,主要代码如下:
int a=10;
int b=15;
if(++a=10 & b++=15){
System.out.println("true");
}
System.out.println("a="+a);
System.out.println("b="+b);
上述代码执行结果是:a=11,b=16;
即&左右两端的表达式都执行。
- 下面再看一段代码:
```java
int a=10;
int b=15;
if(++a=10 && b++=15){
System.out.println("true");
}
System.out.println("a="+a);
System.out.println("b="+b);
上述代码执行结果:a=10;b=15;
即"&&“执行效率更高,判断”&&"左端为false,即可跳出;
2. “|” and “||”
"|":逻辑或;
"||" :短路或;
3."!"and “^”
"!":逻辑非,偶数个不改变本身;
"^" :异或,经典面试题中可借助异或运算互换两个整数变量的值,并且不需要第三个变 量,代码如下:
int x=1;
int y=5;
x=x^y;
y=x^y; //y=1;
x=x^y; //x=5;
即一个数被异或两次,其值不变;
位运算符
1."<<" ,">>" and “>>>”
"<<" : 右移,被移位的二进制最高位是0,右移后,空位补0;
最高位是1,高位补1;
">>" :左移,空位补零,最高位丢弃;
">>>":无符号右移,空缺位都用0补;
<<:把<<左边的数据乘以2的移动次幂;
>>:把>>左边的数据除以2的移动次幂;
举例:
- 80>>4 即为80/(2^4);
- 80<<4即为80*(2^4);
2.其它运算符
"&":(与),
"|":(或),
"^":(异或) ,
"~":(按位取反) ,
用法如下:
运算符 | 用法 |
---|---|
& | 有0则0 |
I | 有1则1 |
^ | 相同则0,不同则1 |
~ | 按位取反 |
三元运算符
表达式:(关系表达式) ? 表达式1 : 表达式2;
用法:关系表达式布尔值为true时,执行表达式1;否则执行表达式2。
转载:https://blog.csdn.net/weixin_40487115/article/details/101703842
查看评论