Java的逻辑运算和位运算
Java的逻辑运算
1、逻辑运算符
运算符 |
用法 |
含义 |
&& |
op1&&op2 |
逻辑与 |
|| |
op1||op2 |
逻辑或 |
! |
!op |
逻辑非 |
op1 |
Op2 |
op1&&op2 |
op1||op2 |
!op1 |
true |
True |
true |
true |
false |
True |
False |
false |
true |
false |
False |
True |
false |
true |
true |
False |
False |
false |
false |
true |
2、运算法则:
只能对Boolean型数据进行运算
例如:
int x=4;
if(!x%2==0)
运行的结果:
3、特性:
逻辑运算会短路
例如
int a=10,b=20;
if((a=0)==0||(b=0)==0)
{
System.out.println(b);
}
运行的结果:
Java的位运算
1、位运算符
a类
“按位与”运算符“&”,规则:全1则1,否则为0
“按位或”运算符“|”,规则:全0则0,否则为1。
“按位非”运算符“~”,规则:遇1则0,遇0则1。
“按位异或”运算符“^”,规则:相同为0,不同为1。
b类
>> 右移运算符:将二进制数据进行右移运算,左移之后的空位使用0来填充,例如 int 类型3和-3右移2位。
<< 左移运算符:将二进制数据进行左移运算,右移之后空出来的位置以符号位填充。如果是正数使用“0”填充,如果是负数使 用“1”填充,例如 int 类型3左移2位。
>>> 无符号右移运算符:无论正负,空出来的位以“0”填充,例如int类型3和-2无符号右移2位。
2、运算法则
a. |,&,可以对数值和布尔型进行运算
b. <<,>>,>>>(无符号右移)型
例如:
>> 右移运算符:将二进制数据进行右移运算,左移之后的空位使用0来填充,例如 int 类型3和-3右移2位,如下图:
>>> 无符号右移运算符:无论正负,空出来的位以“0”填充,例如int类型3和-2无符号右移2位,如下图:
3、特性
a.位运算不会短路
int a=10,b=20;
if((a=0)==0|(b=0)==0)
{
System.out.println(b);
}
运行结果:
b. 按异或两次,回到原值
int a=3,b=5;
a=a^b;
b=a^b;
a=a^b;
运行的结果:
若有缺陷或者错误,请不吝赐教。