《C语言运算符及其表达式.ppt》由会员分享,可在线阅读,更多相关《C语言运算符及其表达式.ppt(25页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1.6 1.6 C51C51运算符及其表达运算符及其表达式式1.6 C51运算符及其表达式 运算符就是完成某种特定运算的符号。运算符按其表达式中与运算符的关系可分为单目运算符,双目运算符和三目运算符。单目就是指需要有一个运算对象,双目就要求有两个运算对象,三目则要三个运算对象。表达式则是由运算及运算对象所组成的具有特定含义的式子。表达式后面加“;”号就构成了一个表达式语句。优先级指当运算对象两侧都有运算符时,执行运算的先后次序。按运算符优先级别的高低顺序执行运算。结合性指当一个运算对象两侧的运算符的优先级别相同时的运算顺序。1.赋值运算符及表达式“=”表示赋值运算符。利用赋值运算符将一个变量与
2、一个数值或表达式连接起来的式子为赋值表达式,格式如下:变量=数值;或变量=表达式;(不要忘记后面的逗号)例如:a=0 xFF;/将常数十六进制数FF赋于变量a b=c=33;/同时赋值给变量b,c d=e;/将变量e的值赋于变量d f=a+b;/将表达式a+b的值赋于变量f 赋值运算符结合性为右结合性,即多个赋值表达式连排时,从右向左赋值。2.复合赋值运算符及表达式复合赋值运算符就是在赋值运算符“=”的前面加上其他双目运算符。C 51中的复合赋值运算符如下:+=,-=,*=,/=,%=,&=,|=,=,=,注意:=,a+b 等效于c(a+b);a=bc 等效于a=(bc);a=bc等效于a=(
3、bb!=c 等效于(ab!)=c。,=关系运算符优先级高低=,!=5.关系运算符及表达式当两个表达式用关系运算符连接起来时,就变成了关系表达式。关系表达式通常是用来判别某个条件是否满足。表达式1 关系运算符 表达式2 如:IJ,I=J,(I=4)(J=3),J+IJ关系表达式的结果只有0和1两种,也就是逻辑的真与假,当指定的条件满足时结果为 1,不满足时结果为0。例如:关系表达式“4=3”的值为“假”,即为0。关系表达式“43”的值为“真”,即为1。关系运算符为左结合性。例如:f=435,由于左结合性,43的值为1,而15的值为0,故f=0。6.逻辑运算符及表达式逻辑运算符是用于求条件式的逻辑
4、值。C51提供三种逻辑运算符:逻辑非(NOT):!逻辑与(AND):&逻辑或(OR):|用逻辑运算符将关系表达式或逻辑量连接起来就是逻辑表达式了 逻辑非:!条件式1 逻辑与:条件式1&条件式2 逻辑或:条件式1|条件式2!为单目运算符、右结合性,&和|为双目运算符、左结合性。逻辑表达式的值以0代表假,以1代表真。6.逻辑运算符及表达式逻辑与是指只要二个运算条件中有一个为假时,运算结果就为假,只有当条件式都为真时,逻辑运算结果才为真。逻辑或是指只要二个运算条件中有一个为真时,运算结果就为真,只有当条件式都不为真时,逻辑运算结果才为假。逻辑非则是把逻辑运算结果值取反,也就是说如果条件式的运算值为真
5、,进行逻辑非运算后则结果变为假,条件式运算值为假时最后逻辑非结果为真。6.逻辑运算符及表达式各种运算符优先级次序如右图:例如:!a|cd 等效于 (!a)|(cd)ab&cd 等效于 (ab)&(cd)在多个逻辑运算符构成的逻辑表达式中,并不是所有的逻辑运算符都被执行,只是在必须执行下一个逻辑运算符后才能求出表达式的值时,才执行该运算符。例如:对于运算符“&”来说,只有左边的值不为假(0)才继续执行右边的运算。对于运算符“|”来说,只有左边的值为假(0)才继续执行右边的运算。7.位运算符及表达式思考 指示灯LED0LED7分别接在P1口的P1.0P1.7管脚上,高电平指示灯灭,低电平指示灯亮,
6、1.保持P1口其余灯的状态不变,只关闭LED0指示灯的 C控制语句。2.保持P1口其余灯的状态不变,只打开LED7指示灯的 C控制语句。3.保持P1口其余灯的状态不变,只关闭LED0、LED3打 开LED1、LED2的C控制语句。4.与目前P1端口所有指示灯输出状态相反的C指令,即目前亮灯改为灭灯,目前灭灯改为亮灯。7.位运算符及表达式位运算符的作用是按位对变量进行运算,但是并不改变参与运算的变量的值。如果要求按位改变变量的值,则要利用相应的赋值运算。C51 中共有6 种位运算符,分别如下:按位取反 :右移&:按位与 :按位异或|:按位或运算符的优先级比别的算术运算符、关系运算符和其他运算符都
7、高。例如:a&b,先执行a运算,再做&运算。7.位运算符及表达式按位与 x&y(1)规则:相应位均为1时才为1,否则为0 (2)主要用途:取(或保留)1个数的某(些)位,其余各位置0。按位或 x|y (1)规则:相应位均为0时才为0,否则为1 (2)主要用途:将1个数的某(些)位置1,其余各位不变。按位异或 xy (1)规则:相应位相同时为0,不同时为1。(2)主要用途:使1个数的某(些)位翻转 (即原来为1的位变为0,为0的变为1),其余各位不变。7.位运算符及表达式按位取反 x 规则:各位翻转,即1变成0,0变成1。按位左移 x位数 规则:使操作数的各位右移,移出 的低位舍弃;高位对无符号
8、 数和有符号中的正数,补0。7.位运算符及表达式位运算符只能对整型或字符型数据操作,不能用来对浮点型数据进行操作的。参与运算的操作数必须首先转换成二进制形式,然后再执行相应的按位运算。按位取反运算符“”为单目运算符、左结合性,其他位操作运算符都是双目运算符、右结合性。进行位运算时并不改变参与运算的变量的值。如果要求按位改变变量的值,则要利用相应的赋值运算。7.位运算符及表达式课堂作业:若a=54H,b=3AH,则 (1)c=a&b;(2)c=a|b;(3)c=ab;(4)c=a;(5)c=a2;(6)c=a2;8.逗号运算符及表达式用逗号运算符将两个或多个表达式连接起来,形成逗号表达式。逗号表
9、达式的一般形式为:表达式 1,表达式2,表达式3,表达式n先计算表达式1,再计算表达式2,最后计算表达式n。最后一个表达式的值即为此逗号表达式的值。在所有运算符中,逗号运算符级别是最低的。9.条件运算符及表达式条件运算符“?:”是C51中唯一的1个三目运算符,它要求有三个运算对象。用它以把三个表达式连接构成一个条件表达式。条件表达式的一般形式如下:逻辑表达式?表达式1:表达式2 条件运算符的作用是根据逻辑表达式的值选择使用表达式的值。当逻辑表达式的值为真时(非0 值)时,整个表达式的值为表达式1的值;当逻辑表达式的值为假(值为0)时,整个表达式的值为表达式2的值。9.条件运算符及表达式如有a=1,b=2 这时我们要求是取ab 两数中的较小的值放入min 变量中,也许你会这样写:if(ab)min=a;/当ab 时min 的值为a 的值,else /否则为b 的值。min=b;用条件运算符去构成条件表达式就变得简单明了了:min=(a=8&y2;(4)c=+a%b-;(5)!m&n;(6)ab|c&d.
限制150内