- 1、本文档共61页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
STC单片机C语言程序设计 第10章 STC单片机C语言运算符
STC单片机C语言运算符
主讲:何宾
Email :hebin@mail.buct.edu.cn
2016.03
STC单片机C语言运算符
在C语言中,提供了丰富的运算符用于实现复杂的运算功能,包
括:算术运算、逻辑运算及逻辑判断等。本章将详细的介绍C语
言中所提供的赋值运算符、算术运算符、递增和递减运算符、关
系运算符、逻辑运算符、位运算符、符合赋值运算符、逗号运算
符、条件运算符、强制类型转换符以及sizeof运算符。
通过本章内容的学习,掌握C语言运算符的表示方法及所实现的
功能,灵活高效地运用这些运算符实现对数据进行处理。
C语言运算符分类
在C语言中,提供了丰富的运算符用于对数据的处理。通过运算
符和数据的有效合理搭配,就构成了可以完成所要求运算功能的
表达式。对于C语言的运算符来说,可以从下面的角度进行分类:
根据所实现的功能 ,C语言中的运算符可以分为赋值运算符、算
术运算符、递增和递减运算符、关系运算符、逻辑运算符、位运
算符、符合赋值运算符、逗号运算符、条件运算符、指针和地址
运算符、强制类型转换运算符和sizeof等运算符。
C语言运算符分类
根据参与运算数据的个数 ,C语言中的运算符可以分为单目运算
符、双目运算符和三目运算符。
对于单目运算符,只有一个操作数。典型地,包括:递增递减运算符、取地
址运算符、指针运算符、取正数运算符,取负数运算符、按位取反运算符和
sizeof运算符。
对于双目操作符,有两个操作数。典型地,包括加法、减法、乘法和除法运
算符等。
对于三目操作符,有三个操作数。典型地,条件运算符。
C语言运算符优先级
所谓的运算符优先级是指,在一个运算表达式中,执行运算的先
后顺序。在C语言中,共分了15级优先级,最高优先级称为第1
级,最低优先级称为第15级,也就是所数字越高优先级越低。
注:表中的一些其它运算符在后续章节中将详细介绍。
赋值运算符
在C语言中,赋值操作使用“=”号实现,“=”称为赋值运算符,
赋值语句的格式为:
变量=表达式;
先计算由表达式所得到的值,然后在将该值分配给变量。
【例10-1】不同类型之间赋值操作的例子
代码清单10-1 main.c文件
int main()
{
volatile unsigned int a; //定义无符号的整型变量a ,带有volatile属性
volatile int b=-2345; //定义带符号的整型变量,初值为-2345
a=b; //将b的值赋给a ,
return 0;
}
赋值运算符
读者可以进入到本书所提供资料的stc_program_example\例子
10-1\ 目录下,在Keil μVision5集成开发环境下打开该设计,并
进入调试器模式,使用单步运行。根据前面说提到的,由于b是
有符号的变量,而a是无符号的变量,当把有符号变量的数赋值
给无符号变量a的时候,会有什么结果?下面对该段代码进行分
析。
在Disassembly窗口中 ,查看该段C语言代码的反汇编代码。
赋值运算符
代码清单10-2 main.c的反汇编代码
2: {
3: volatile unsigned int a;
4: volatile int b=-2345;
C:0x0003 750AF6 MOV 0x0A,#0xF6
C:0x0006 750BD7 MOV 0x0B,#0xD7
5: a=b;
C:0x0009 850A08
文档评论(0)