单算移关与,异或逻条赋:单目运算符、算术运算符、左移右移、关系运算符、按位与,异或、按位或、逻辑运算符、条件运算符、赋值
算术运算符
+、-、*、/、%、++、--
注意:%不能用于浮点数
++在前:++a 先自加,在赋值
++在后:a++ 先赋值,在自加
关系运算符
>、<、>=、<=、==、!=
注意:0 < a < 5 //error
a > 0 && a < 5
注意:常量写在==号的前面
逻辑运算符
&&、||、!
表达式1 && 表达式2
&&的截断法则:有一个为假,结果就为假,前一个为假,后面就不再进行运算了
||的截断法则:有一个为真,结果就为真,前一个为真,后面就不再进行运算了
sizeof运算符
sizeof(数据类型) or sizeof(变量名)
三目运算符(条件运算符)
表达式1?表达式2:表达式3
判断表达式1的值是否成立,如果成立,将表达式2的值作为整个表达式的值(结果),否则,将表达式3的值作为整个表达式的值
逗号运算符
表达式1,表达式2,……,表达式n;
从左至右,依此计算表达式的值,将最后一个表达式的值作为整个表达式的值
位运算
&、|、~、^、<<、>>
按位与
1101 0011
& 1010 1101
1000 0001
案例:将1101 0011的3~5位清零
1101 0011
& 1100 0111
1100 0011
案例2:将1101 0011的0~2位清零
1101 0011
& 1111 1000 ~(0000 0111)
1101 0000
按位或
1101 0011
| 0101 1001
1101 1011
案例:将1101 0011的0~3位变成1100
1101 0011
& 1111 0000 ~(0000 1111)
1101 0000
| 0000 1100
1101 1100
按位取反
~(1101 0011) --> 0010 1100
异或
相同为0,不同为1
1101 0011
^ 1110 0110
0011 0101
左移
高位丢弃,低位补0
右移
1、无符号数(低位丢弃,高位补0)
2、有符号数
正数:低位丢弃,高位补0
负数:低位丢弃,高位补1