1.运算符
1.++i和i++的区别
++i先进行自增,再进行计算,
i++先代入进行计算,再自增,
例:
int x = 4;
int y = (x++)+(++x)+(x*10);
y的值是多少?
=4+(++x)+(x*10) X=5
=4+6+6*10 x=6
2,位运算符
位运算符是针对两个具体数值进行计算的,这些连接两个具体的数据值。
1)位与&
先计算出两个数值的二进制,然后再经过原,反,补来进行计算。
有0则都为0,(可以理解为0是false,1为true)
2)位或 |
同上,有一个1则为1,
3)异或 ^
相同则为0(false),不同则为1(true)
4)
~数据值: 按位取反,全部都要1变0,0变1
~3 :
00000000 00000000 00000000 00000011
~
--------------------------------------------
11111111 11111111 11111111 11111100 (补码) ---->原码
- 1
-------------------------------------
11111111 11111111 11111111 11111011 反码
符号位 数值位 在反码基础上:符合位不变,数值位,按位取反
1 1111111 11111111 11111111 11111011
1 0000000 00000000 00000000 00000100
- 4
3.逻辑运算符
&&(逻辑双与),||(逻辑双或)
逻辑双与&&和逻辑单与&
共同点:当多个条件,有一个不满足,就不成立! 并列关系
有false,则false
逻辑单与&:无论符号左边的表达式是true还是false,右边都需要执行!
逻辑双与&&:
具有短路效果!
如果符号左边的表达式为false,则右边的表达式不会执行了!
逻辑性比单与&更强一些,开发经常使用逻辑双&& !
逻辑双或||:
左边的表达式如果为true,右边不执行!