Java运算符:
赋值运算符:(= , += , -= , /= , %= , ++ , --)
=为赋值运算,把右边的值赋给左边
算术运算符:(+ , - ,* , / , % , ++ , --)
+ , - ,* , /:与我们普通的数学运算类似,
% :进行取模运算时,运算结果的符号与被除数有关,与除数无关。简单来说就是被除数是整数,则结果为正数,被除数为负数,则结果为负数。
代码:
结果:
++,--:如果++,--在变量前面,则先进行++,--操作在进行赋值操作,如果++,--在变量后面,则先赋值再进行++,--
代码:
结果:
代码:
结果:
比较运算符:(> , < , >= , <=, == , !=)
这个没什么好说的,和数学中的大于、小于、大于等于、小于等于、等于、不等于一致
逻辑运算符:(& , && , | , || , !)
&和&&:如果左右两边都为真则为真,如果有一个为假那么就为假
注意:&做逻辑运算时如果左边为假,右边的式子会继续执行
&&做逻辑运算时,如果左边为假,右边不执行
代码:
结果:
结论:a == 2 为假,b++照样运行,最后b等于2
代码:
结果:
结论:a == 2为假,右边的 b++代码没运行,b = 1
|和||:如果左右两边都为假则为假,如果有一个为真那么就为真
注意:|做逻辑运算时如果左边为真,右边的式子会继续执行
||做逻辑运算时,如果左边为真,右边不执行
代码
结果:
结论:a == 1为真,右边的b++执行了,b = 2;
代码
结果:
结论:a == 1为真,右边的b++没执行,所以b = 1
!:原来为真则为假,原来为假则为真
位运算符:(& , | , ~ , ^ , << , >> , >>>)
注意:这里的运算符都是二进制运算
&:与运算,两个都为1则为1,否则为0
|:或运算,只要有一个为1就为1,两个为0则为0
~:非运算,如果位为0结果是1,如果位为1,结果是0
公式:~x = -x -1
^:异或运算,两个操作符相同为1,不同为0
<<:左移运算符,丢弃最高位,0补最低位;
在数字没有溢出的情况下,整数或者负数左移一位相当于乘以一次2的一次方
总结:不管移多少位,正数始终为正数,负数始终为负数。
>>:右移运算符,最低位移除,高位的空位补符号位整数补0,负数补1;
在数字没有溢出的情况下,整数或者负数右移一位相当于除以一次2的一次方
总结:不管移多少位,正数始终为正数,负数始终为负数。
>>>:无符号右移,忽略符号位,0补最高位,运算规则与>>一样,不过最高位填充时不管正数还是负数都补0。
总结:负数不管运算后会变为正数,正数右移后还是正数