运算符和表达式_第1页
运算符和表达式_第2页
运算符和表达式_第3页
运算符和表达式_第4页
运算符和表达式_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

运算符和表达式表达式表达式是由运算符及运算对象组成的、具有特定含义的式子。C语言是一种表达式语言,表达式后面加上分号就构成了表达式语句。这里我们主要介绍在C51编程中经常用到的算术运算、赋值运算、关系运算、逻辑运算、位运算、逗号运算及其表达式。算数运算符与算术表达式运算符名运

符算术运算符+

*/%++

关系运算符><==>=<=!=逻辑运算符!&&||位运算符<<>>~&|^赋值运算符=条件运算符?:逗号运算符,指针运算符*&求字节数运算符sizeof强制类型转换运算符(类型)下标运算符[]函数调用运算符()用算术运算符连接起来的式子,就叫算术表达式。圆的面积公式:S=πr²S=Pi*r*r;算数运算符与算术表达式运算符名称功

能+加法求两个数的和,例如8+9=17

减法求两个数的差,例如20

9=11*乘法求两个数的积,例如20*5=100/除法求两个数的商,例如20/5=4%取余求两个数的余数,例如20%9=2++自增1变量自动加1

自减1变量自动减1inti=100,j;j=++i; //j=101,i=101j=i++; //j=101,i=102要注意除法运算符在进行浮点数相除时,其结果为浮点数,如20.0/5所得值为4.0;而进行两个整数相除时,所得值是整数,如7/3,值为2。取余运算符(模运算符)“%”要求参与运算的量均为整型,其结果等于两数相除后的余数。C51提供的自增运算符“++”和自减运算符“--”,作用是使变量值自动加1或减1。自增运算和自减运算只能用于变量而不能用于常量表达式。运算符放在变量前和变量后是不同的。

后置运算:i++(或i--)是先使用i的值,再执行i+1(或i-1)。

前置运算:++i(或--i)是先执行i+1(或i-1),再使用i的值。编程时常将这两个运算符用于循环语句中,使循环变量自动加1;也常用于指针变量,使指针自动加1指向下一个地址。算数运算符与算术表达式取余运算取余运算有什么用处呢?我们来看一个应用,如果我们需要把一个整数在数码管或者液晶上显示出来的话,那就需要把一个整数的每位拆分开来,一位一位进行显示,例如,要显示25这个数,我们就需要把25这个数的十位和个位拆分开来,分别是2和5,那用什么运算能实现这个结果呢?2525/10=225%10=537813781/1000=33781/100%10=73781%100/10=83781%10=1算数运算符与算术表达式赋值运算符赋值运算符“=”的作用就是给变量赋值,如“x=10;”。用赋值运算符将一个变量与一个表达式连接起来的式子称为赋值表达式,在表达式后面加“;”便构成了赋值语句。赋值语句的格式如下由此可见,赋值表达式的功能是计算表达式的值再赋予左边的变量。赋值运算符具有右结合性,因此有下面的语句:k=0xff; //将十六进制数0xff赋予变量kb=c=33; //将33同时赋予变量b和cd=e; //将变量e的值赋予变量df=a+b; //将表达式a+b的值赋予变量f变量=表达式;a=b=c=5;a=(b=(c=5));按照C语言的规定,任何表达式在其末尾加上分号就构成语句。因此“X=8;”和“a=b=c=5;”都是赋值语句。二.赋值运算符与赋值表达式笔段液晶显示器由长条状显示像素组成一位显示。主要用于数字、西文字母或某些字符显示,显示效果与数码管类似。字符液晶显示器为专门用来显示字母、数字、符号等的点阵型液晶显示模块,在项目任务中使用的就是这种液晶模块。图形液晶显示器在一平板上排列多行和多列,形成矩阵形式的晶格点,点的大小可根据显示的清晰度来设计,可广泛用于图形显示,如游戏机、笔记本电脑和彩色电视等设备中。液晶显示器可分为下面的笔段型、字符型和点阵图形型三类二.赋值运算符与赋值表达式1602LCD字符液晶显示器构成复合赋值表达式的一般形式为:例如:变量复合赋值运算符表达式a+=5 //相当于a=a+5x*=y+7 //相当于x=x*(y+7)r%=p: //相当于r=r%p在程序中使用复合赋值运算符,可以简化程序,有利于编译处理,提高编译效率并产生质量较高的目标代码。二.赋值运算符与赋值表达式运算符名称+=加法赋值=减法赋值*=乘法赋值/=除法赋值%=取余赋值<<=左移位赋值>>=右移位赋值&=逻辑与赋值|=逻辑或赋值^=逻辑异或赋值~=逻辑非赋值它等效于:变量=变量运算符表达式在前面介绍过的选择程序结构中,经常需要比较两个变量的大小关系,以决定程序下一步的操作。比较两个数据量的运算符称为关系运算符。三

.关系运算符与关系表达式在关系运算符中,<、<=、>、>=的优先级相同,==和!=优先级相同;前者优先级高于后者a+b>c+d;(a+b)>(c+d);运算符名称>大于>=大于等于<小于<=小于等于==等于!=不等于例如:a==b>ca==(b>c)关系运算符优先级低于算术运算符,高于赋值运算符例如:三.关系运算符与关系表达式关系表达式关系表达式是用关系运算符连接的两个表达式。它的一般形式为:

表达式关系运算符表达式假定a=5;b=3;a>b的结果是什么呢?a==ba!=b三.关系运算符与关系表达式假0真1真1C语言中提供了三种逻辑运算符逻辑与(and):&&逻辑或(or

):||逻辑非(not):!“&&”和“II”是双目运算符,要求有两个运算对象,结合方向是从左至右。“!”是单目运算符,只要求一个运算对象,结合方向是从右至左。四.逻辑运算符与逻辑表达式真真真逻辑与:&&表达式1&&表达式2&&=真&&=假假真&&=假假&&=假假假逻辑或:||表达式1||表达式2真真真||=真||=假真=假=假假假||||真真逻辑非:!!表达式真!=假!=假真四.逻辑运算符与逻辑表达式逻辑运算符“!”的优先级最高,其次为“&&”,最低为“II 和其他运算符比较,优先级从高到低的排列顺序为:!算术运算符—关系运算符一&&II算术运算符一赋值运算符例如:

"a>b&&x>y"

可以理解为"(a>b)&&(x>y)", "a==bllx==y"

可以理解为"(a==b)I|(x==y)",

"!aIIa>b"

可以理解为"(!a)II(a>b)"。四.逻辑运算符与逻辑表达式在51单片机应用系统设计中,对I/O端口的操作是非常频繁的,因此往往要求程序在位(bit)一级进行运算或处理,因此,编程语言要具有强大灵活的位处理能力。C51语言直接面对51单片机硬件,提供了强大灵活的位运算功能,使得C语言也能像汇编语言一样对硬件直接进行操作。五.位运算符与位运算表达式运算符名称&按位与|按位或^按位异或~按位取反>>右移<<左移位变量1位变量2位运算ab~a~ba&ba|ba^b0011000011001110010111100110五.位运算符与位运算表达式按位与运算:&运算法则:有0出0,全1出1aba&b000010100111x&0=0//x代表0或者1x&1=x//x代表0或者1五.位运算符与位运算表达式按位或运算:|运算法则:有1出1,全0出0aba|b111000011101x|0=x//x代表0或者1x|1=1//x代表0或者1五.位运算符与位运算表达式按位异或运算:^运算法则:相同为0,不同为1aba&b000011101110x^0=x//x代表0或者1x^1=取反

//x代表0或者1五.位运算符与位运算表达式按位取反运算:~运算法则:把1变0,把0变1a~a0110~x=取反

//x代表0或者1五.位运算符与位运算表达式左移运算符“<<”左移运算符“<<”的功能,是把“<<”左边的操作数的各二进制位全部左移若干位,移动的位数由“<<”右边的常数指定,高位丢弃,低位补0。例如“a<<1”是指把a的各二进制位向左移动1位。如a=182转换为二进制形式:10110110011011001丢掉a<<1=01101100五.位运算符与位运算表达式右移运算符“>>”右移运算符“>>”的功能,是把“>>”左边的操作数的各二进制位全部右移若干位,移动的位数由“>>”右边的常数指定。进行右移运算时,如果是无符号数,则总是在其左端补“0”;对于有符号数,在右移时,符号位将随同移动。当为正数时,最高位补0,而为负数时,符号位为1,最高位是补0还是补1取决于编译系统的规定。例如:设a=0x98如果a为无符号数,则“a>>2”表示把10011000B右移为00100110B;如果a为有符号数,则“a>>2”表示把10011000B右移为11100110B。五.位运算符与位运算表达式在C语言中逗号“,”也是一种运算符,称为逗号运算符,其功能是把两个表达式连接起来组成一个表达式,称为逗号表达式,其一般形式为:表达式1,表达式2,…,表达式n逗号表达式的求值过程是:从左至右分别求出各个表达式的值,并以最右边的表达式n的值作为整个逗号表达式的值。程序中使用逗号表达式的目的,通常是要分别求逗号表达式内各表达式的值,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论