- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机控制系统运行与维护
单片机控制系统运行与维护
PAGE 1
运算符与表达式
一、学习目的与要求
1.掌握C51运算符。
2.掌握C51表达式。
二、学习方法
1.学习本课程,首先要精读教材和讲义,熟悉C51运算符与表达式。
2.根据教材实例,掌握C51运算符与表达式使用。
三、授课内容
运算符就是完成某种特定运算的符号,常用的运算符有算术运算符、关系运算符、逻辑运算符、位运算符等。表达式是由运算符和运算对象所组成的具有特定含义的式子,在表达式后面加上“;”就构成了表达式语句。
1.赋值运算符及表达式
赋值运算符“=”在C51中的功能是给变量赋值。利用赋值运算符将一个变量和一个表达式连接起来的式子就是赋值表达式,在表达式后面加上“;”则成为赋值语句。例如:
a=0x86; //将常数0x86赋值给变量a
f=a+b; //将变量a+b的值赋值给变量f
2. 算术运算符及表达式
C51中最基本的5种算术运算符如下:
+ 加法或正值符号;
? 减法或负值符号;
* 乘法
/ 除法
% 模(求余)。
用算术运算符和括号将运算对象连接起来的式子就是算术表达式。例如:
a+b;
a+b*c/d;
算术运算符的优先级别规定为:先乘除模,后加减,括号最优先,当优先级别相同时按从左向右的方向运算。
3. 关系运算符及表达式
C51中的6种关系运算符如下:
? 小于;
? 大于;
?= 小于等于;
?= 大于等于;
= = 等于;
?= 不等于。
六种关系运算符中,前四种(?、?、?=、?=)优先级相同,后两种(= =、?=)也相同,前四种优先级高于后两种。当优先级别相同时按从左向右的方向运算。
关系运算符的优先级低于算术运算符,高于赋值运算符。
用关系运算符将两个表达式连接起来的式子称为关系表达式。关系表达式的结果是一个逻辑值,即真或假,以1代表真,以0代表假。例如:
c?a+b 等效于 c?(a+b)
若a=4,b=1,c=6,则上式的结果为真,表达式值为1。
4. 逻辑运算符及表达式
C51中的3种逻辑运算符如下:
逻辑“与”;
|| 逻辑“或”;
! 逻辑“非”。
“”、“||”要求有两个运算对象,而“!”只需一个运算对象。
C51的逻辑运算符与算术运算符、赋值运算符之间的优先级别如图1所示。其中“!”运算符优先级最高,算术运算符次之,关系运算符再次之,“”、“||”再次之,最低为赋值运算符。
图1 优先级顺序
用逻辑运算符将关系表达式或逻辑量连接起来的式子称逻辑表达式。逻辑表达式的结果是一个逻辑量真或假,与关系表达式的值相同,以0代表假,以1代表真。例如:
若a=4,b=8,则
!a 为假(0)
ab 为真(1)
(a?2)||(b?10) 为真(1)
5. 位运算符及表达式
C51可以对运算对象进行按位操作。位运算符的作用是按位对变量进行运算,但不能用于浮点型数据。
C51中的6种位运算符如下:
按位与;
| 按位或;
^ 按位异或;
~ 按位取反;
?? 位左移;
?? 位右移。
六种关系运算符中,“~”优先级最高,“??”、“??”优先级次之,“”、“|”、“^”优先级最低。当优先级别相同时按从左向右的方向运算。例如:
a=0x86,b=0x0f,则
ab 结果为0x06
a^b 结果为0x89
a??2 将a中的内容向左移两位,结果为0x18
6. 自增减运算符及表达式
C51提供的2种自增减运算符如下:
++ 自增;
?? 自减。
这种运算符的作用是使变量值自动加1或减1,自增运算和自减运算只能用于变量而不能用于常量表达式,运算符放在变量前和变量后是不同的。
自增减运算符的优先级高于算术运算符、关系运算符、赋值运算符等。自增减运算符当优先级别相同时按从右向左的方向运算。例如:
? i++ 等效于?(i++)
后置运算:i++(或i??)是先使用i的值,再执行i+1(或i?1)。
前置运算:++i(或??i)是先执行i+1(或i?1),再使用i的值。
对自增、自减运算的理解和使用是比较容易出错的,应仔细地分析,例如:
int i=100,j;
j=++i; // j=101,i=101
j=i++; // j=101,i=102
编程时常将“++”、“??”这两个运算符用于循环语句中,使循环变量自动加1;也常用于指针变量,使指针自动加1指向下一个地址。
7. 复合运算符及表达式
复合运算符就是在赋值运算符“=”前面加上其他运算符,C51提供的10种复合运算符如下:
+=(加法赋值),?=(减法赋值),*=(乘法赋值),/=(除法赋值),%=(求模赋值),=(与赋值),|=(或赋值),^=(异或赋值),??=(左移赋值),??=
原创力文档


文档评论(0)