- 1、本文档共50页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
用算术运算符和括号将运算对象连接起来的式子称为算术表达式。运算对象包括常量、变量、函数、数组、结构体等等。 算术表达式的形式: 表达式1 算术运算符 表达式2 例如:a+b, (x+4)/(y-b),y-sin(x)/2 1.4.2.2 算术运算的优先级与结合性 算术运算符的优先级规定为:先乘除模,后加减,括号最优先。乘、除、模运算符的优先级相同,并高于加减运算符。括号中的内容优先级最高。 a+b*c; // 乘号的优先级高于加号,故先运算b*c,所得的结果再与a相加 (a+b)*(c-d)-6; // 括号的优先级最高,*次之,减号优先级最低.故先运算(a+b)和(c-d),// 然后将二者的结果相乘,最后再与6相减 算术运算的结合性规定为自左至右方向,称为“左结合性”。即当一个运算对象两边的算术运算符优先级相同时,运算对象先与左面的运算符结合。 a+b-c; // b两边是“+”、“-”运算符优先级相同,按左结合性优先执行a+b再减C 1.4.2.3 数据类型转换运算 当运算符的两侧的数据类型不同时必须通过数据类型转换将数据转换成同种类型。 转换的方式有两种:自动类型转换和强制类型转换。 自动类型转换 由C51编译器编译时自动进行。 如图1-4-1所示为自动数据类型转换规则。 char→int→long→float→double unsigned signed 低 高 图1-4-1 数据类型转换规则 强制类型转换 需要使用强制类型转换运算符,其格式为: (类型名) (表达式); 例如: (double)xx // 将xx强制转换成double类型。 (int)(a+b) // 将a+b的值强制转换成int类型。 使用强制转换类型运算符后,运算结果被强制转换成规定的类型。 例如: unsigned char x,y; unsigned char z; z= (unsigned char)(x*y); 1.4.3关系运算 1.4.3.1关系运算符 < (小于) > (大于) <= (小于或等于) >= (大于或等于) == (等于) != (不等于) 关系运算符同样有着优先级别。前四个具有相同的优先级,后两个也具有相同的优先级,但是前四个的优先级要高于后两个。 关系运算符的结合性为左结合。 1.4.3.2 关系表达式 关系表达式就是用关系运算符连接起来两个表达式。 关系表达式通常是用来判别某个条件是否满足。 要注意的是用关系运算符的运算结果只有0和1两种,也就是逻辑的真与假,当指定的条件满足时结果为1,不满足时结果为0。 关系表达式结构如下: 表达式1 关系运算符 表达式2 例如: a>b; //若a大于b,则表达式值为1(真) b+c<a; //若a=3,b=4,c=5, 则表达式值为0(假) (a>b)==c; //若a=3,b=2,c=1, 则表达式值为1(真)。因为a>b值为1,等于c值 c==5>a>b;//若a=3,b=2,c=1, 则表达式值为0(假)。 1.4.4逻辑运算 关系运算符反映两个表达式之间的大小等于关系,逻辑运算符则用于求条件式的逻辑值,用逻辑运算符将关系表达式或逻辑量连接起来就是逻辑表达式了。 C51提供三种逻辑运算: 逻辑与() 逻辑或( | | ) 逻辑非( ! ) 逻辑表达式的一般形式为: 逻辑与:条件式1 条件式2 逻辑或:条件式1 | | 条件式2 逻辑非: ! 条件式 逻辑表达式的结合性为自左向右。逻辑表达式的值应该是一个逻辑值“真”或“假”, 以0代表假,以1代表真。 逻辑表达式:用逻辑运算符将关系表达式或逻辑量连接起来的式子称为逻辑表达式。 逻辑表达式的运算结果不是0就是1,不可能是其它值。 C51逻辑运算符与算术运算符、关系运算符、赋值运算符之间优先级的次序如图1-3-2所示。 !(非) 算术运算符 关系运算符 和| | 赋值运算符 高 低 优 先 级 图1-3-2 运算符的优先级 1.4.5 位运算 C51语言直接面对8051单片机,对于8051单片机强大灵活的位处理能力也提供了位操作指令。 C51中共有6种位运算符: 按位与 | 按位或 ^ 按位异或 ~ 按位取反 位左移 位右移 位运算符的作用是按位对变量进行运算,但是并不改变参与运算的变量的值。 如果要求按位改变变量的值,则要利用
文档评论(0)