初步了解
表达式:d = a + b * c
优先级:d = a + b * c(先b * c再+a)
结合性:d = b * c / 10(优先级相同时:确定表达式如何结合来确定执行顺序)
算数运算符
/(除)
运算符两边有一个浮点数则执行浮点数除法,否则执行整数除法。
%(取余)
运算符两边只能是整数。
举例:
应用举例:
开发版获取温度or时间值,如何拆解数字?如:温度43°。
43 / 10 = 4
43%10 = 3
赋值运算符
“ = ”:
将一个值赋给另外一个变量。
在C语言中,= 左边只能说一个变量名,不允许是表达式。如:x + 1 = x;(错误)
赋值复合运算符
优先级
无论是‘‘=’’还是赋值复合运算符,优先级都比较低(上表倒二),可参考初步了解中的图表。
注意:不确定运算符优先级时,可以通过()方式。
自增自减运算符
前置:++i、--i
后置:i++、i--
情况1:
如果上述作为单独语句,则没有什么区别
情况2:
应用于表达式中:
位运算符
C语言可以直接对二进制位进行操作。
~(按位取反)
0变为1,1变为0。
注意:
1.按位取反只能用于整型数据。(如:浮点型数据无法使用按位取反)
2.按位取反一般情况下,会将数据的符号改变。
^(按位异或)
相异为真,相同为假。(理解为无进位相加会更好的帮助理解异或的性质)
同1异或,结果取反,同0异或,结果为原始值。
异或的性质
1. 0 ^ n = n //理解异或是无进位相加
2.a^b=b^a
3.a^b^c=a^(b^c)
经典应用:使用异或交换两个数(明天思考后自行补充代码)
&(按位与)
两个运算对象都为1时,结果才为1。
同1与,结果为原始数据,同0与,结果为0(快速置0)。
|(按位或)
任何一个位为1,结果就为1。
同1或为1(快速置1),同0或为原始值。
<<(左移)
一般形式:x << n 。
表示把x的每一位向左移动n位,右边空位补0。
>>(右移)
一般形式:x >> n 。
表示把x的每一位向右移动n位,
当 x 为无符号数时,左边空位补0,称为逻辑移位。
当 x 为有符号数时,左边空位补最高位,称为算术移位。
位运算符应用
问题1:置1
给一个变量a(0xa2)不改变其他位的值,只改变第6位置1。
问题2:清0
给一个变量a(0xa4)不改变其他位的值,只改变第2位清0。
问题3:翻转
给一个变量a(0xa4)不改变其他位的值,只改变第2位取反。
复习记录
1.在位运算中,左移一位,其结果相当于操作数 * 2
右移一位,其结果相当于操作数 / 2