C++语言运算符及表达式.ppt

上传人:b****3 文档编号:2699276 上传时间:2022-11-08 格式:PPT 页数:31 大小:397.50KB
下载 相关 举报
C++语言运算符及表达式.ppt_第1页
第1页 / 共31页
C++语言运算符及表达式.ppt_第2页
第2页 / 共31页
C++语言运算符及表达式.ppt_第3页
第3页 / 共31页
C++语言运算符及表达式.ppt_第4页
第4页 / 共31页
C++语言运算符及表达式.ppt_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

C++语言运算符及表达式.ppt

《C++语言运算符及表达式.ppt》由会员分享,可在线阅读,更多相关《C++语言运算符及表达式.ppt(31页珍藏版)》请在冰豆网上搜索。

C++语言运算符及表达式.ppt

CC+语言运算符及表达式语言运算符及表达式武汉电力职业技术学院机电工程系C+语言运算符分类nn算术运算符;算术运算符;nn关系运算符;关系运算符;nn逻辑运算符;逻辑运算符;nn自增、自减运算符;自增、自减运算符;nn赋值运算符;赋值运算符;nn复合运算符;复合运算符;nn逗号运算符;逗号运算符;nn位运算符;位运算符;nn条件运算符等条件运算符等算术运算符nn包括:

包括:

+(加)、(加)、-(减)、(减)、*(乘)(乘)、/(除)(除)、%(求余数)(求余数)nn%(求余数)要求运算的数必须是整型数(或字(求余数)要求运算的数必须是整型数(或字符)。

计算方法:

结果符)。

计算方法:

结果=被除数被除数-除数除数*商商示例:

示例:

1+23.0-4.94.9*104*203%21+23.0-4.94.9*104*203%2求下列式子的值:

求下列式子的值:

9%31%310%310%-3-10%39%31%310%310%-3-10%3-10%-3-10%-3提示:

同类型的数运算结果还是相同的类型,而不能是其他类型。

计算:

3/21/3*33.0/2.01.0/3.0*3.0赋值运算符(=)nn赋值运算符只能把右侧表达式的值赋值给左侧的赋值运算符只能把右侧表达式的值赋值给左侧的一个变量一个变量;(左侧;(左侧不能是表达式或常量不能是表达式或常量)nn赋值运算符计算的结果为左侧变量的值;赋值运算符计算的结果为左侧变量的值;inta,b;a=a+1;a=30;a=30+2;a=a+1;b=a;inta,b;a+10=30;a+b=a+1;a=10;10=a;inta,b;a=(b=30);关系运算符nn关系运算符指的是进行关系比较的运算符:

(大于)、=(大于等于)、1212.0=AA!

=B逻辑运算符nn用于逻辑运算(真假判断),其计算结果只能是用于逻辑运算(真假判断),其计算结果只能是“真真”(11)或)或“假假”(00)。

有)。

有:

|或(左右表达式只要一个成立则结果为真或(左右表达式只要一个成立则结果为真,中间中间不能有空格)不能有空格)&与(左右表达式都成立则结果为真,中间不能与(左右表达式都成立则结果为真,中间不能有空格)有空格)!

取反(真变成假、假变成真)取反(真变成假、假变成真)nnC+C+语言规定所有非零的值都为语言规定所有非零的值都为“真真”;如:

如:

12|1212|12的计算结果为的计算结果为11;0|00|0的计算结果为的计算结果为00;12&012&0的计算结果为的计算结果为00;!

0!

0为真为真而而!

12!

12为假为假运算符优先级和结合性nn优先级:

为解决当多个字符在一起运算时,先算哪优先级:

为解决当多个字符在一起运算时,先算哪个运算符后算哪个运算符的问题;个运算符后算哪个运算符的问题;每个运算符都有自己的优先级;每个运算符都有自己的优先级;在运算的过程中,优先级别高的先运算,而优先级别低在运算的过程中,优先级别高的先运算,而优先级别低的后运算;的后运算;同级别的运算符在式中运算顺序和运算符的结合性有关,同级别的运算符在式中运算顺序和运算符的结合性有关,一般运算符是从左到右的结合性,所以按从左到右按顺一般运算符是从左到右的结合性,所以按从左到右按顺序进行计算;序进行计算;()可以改变运算符的优先级别,()可以改变运算符的优先级别,C+C+语言任何时候都语言任何时候都先算最内层()中的表达式;先算最内层()中的表达式;(10*(10+10)*(10*2/(10+10)10*(10+10)*(10*2/(10+10))=?

=?

常见运算符优先级nn简单的运算符优先级单目运算符(只有一个数)算术运算符(*/%比+-优先级别高)关系运算符(等于和不等于比其他几种低)逻辑运算符(&大于|)赋值(复合赋值)运算符低高位运算符逗号运算符的级别最低运算符优先级和结合性nn结合性:

指运算符在运算时优先和后面还是前面的量进行结合,从而构成一个表达式。

nn除了个别运算符以外,其他的都是从左到右;nn单目运算符及赋值(复合赋值)运算符为从右到左。

运算符优先级和结合性1.1.10+2020+30*240*50/304.0/5.010+2020+30*240*50/304.0/5.02.2.10+(30/20+10/12+10%12)10+(30/20+10/12+10%12)3.3.535=55+102057=510535=55+102057=5104.4.3=3|333=3&333=3|333=3&37=7!

=77=7!

=7右移101010104左移10101010、移动位数(整型数移动位数(整型数=0=0)如:

)如:

101010101010101044作用:

数据作用:

数据(二进制形式二进制形式)向右移动规定的位数;向右移动规定的位数;空出高位的处理:

空出高位的处理:

nn有符号数:

数据原来最高位为几(有符号数:

数据原来最高位为几(00或或11),),则空出来的最高补几。

(则空出来的最高补几。

(00补补00,11补补11)。

)。

nn无符号数:

高位一律补无符号数:

高位一律补00;位运算符-左移nn左移:

格式:

数据=0)如:

101010104作用:

数据(二进制形式)向左移动规定的位数;空出低位的处理:

一律补0;位运算符应用nn置位;nn复位;nn判断位为1还是0;nn统计1或0位的个数;nn对位进行特殊处理,如取反。

复合赋值运算符nn运算符和赋值运算符相结合而成的符号;运算符和赋值运算符相结合而成的符号;有:

有:

+=-=*=/=%=+=-=*=/=%=|=&=|=&=nn复合运算符级别低(倒数第二);复合运算符级别低(倒数第二);inta=10;a+=20;/*等价于a=a+20*/a-=10;/*等价于a=a-20*/a/=20;/*等价于a=a/20*/inta=10;a*=10+20;a*=2*a-10;sizeof运算符和逗号运算符nnsizeof运算符用于求变量或常量占用的字节数:

如sizeof(int)=4、sizeof(10.0)=8sizeof(longint)=4nn逗号运算符:

级别最低,可以把多个表达式连接起来。

如:

inta,b,c;表达式nn表达式:

就是利用运算符把变量、常量连接起来满足C+语言要求的式子。

nn注意实现:

1.注意优先级别;注意优先级别;2.注意变量名称的要求;注意变量名称的要求;3.注意数据类型;注意数据类型;4.无法直接表达的必须进行转换,如无法直接表达的必须进行转换,如:

r2表达式示例a+bc12+bca+18(ab+20)-30cy=abcS=r2y=+10y=sinx+cosy+x表达式值的类型及类型转换nn如何转换下面的表达式?

1abc2y=y=1/2*a*b*c(正确吗?

为什么)表达式值的类型及类型转换nn表达式值的类型由参与计算数的类型决定;如:

1/21.0/2.0nn不同类型的数据在计算时如何确定类型?

字符型在计算时直接转换成整型字符型在计算时直接转换成整型值值进行计算;进行计算;floatfloat在计算时直接转换成在计算时直接转换成doubledouble值值进行计算;进行计算;不同类型在计算时,系统自动把不同类型在计算时,系统自动把值值精度低转换成精度低转换成精度高的,而且转换总是依逐个运算符进行的。

精度高的,而且转换总是依逐个运算符进行的。

此过程成为类型转换。

此过程成为类型转换。

表达式值的类型及类型转换longlongunsignedunsignedintintcharchar精度高精度高精度高精度高精度低精度低精度低精度低2.0+1/2;2.0+1/2;表达式的表达式的值值及类型及类型?

2.0doubledoubledoubledoubledoublefloatfloatfloatfloatunsignedlongunsignedlongunsignedlongunsignedlong表达式值的类型及类型转换ffff的类型?

的类型?

的类型?

的类型?

intintdoubledoubledoubledoubledoubledouble已知:

已知:

inti;longinti;longintinte;floatf;doubled;e;floatf;doubled;f=10+a+i*f-d/ef=10+a+i*f-d/edoubledouble转换过程中的类型转换转换过程中的类型转换转换过程中的类型转换转换过程中的类型转换不是不是不是不是量本身数据类型的转量本身数据类型的转量本身数据类型的转量本身数据类型的转换,而是把其值复制一份,把复制的值进行进行换,而是把其值复制一份,把复制的值进行进行换,而是把其值复制一份,把复制的值进行进行换,而是把其值复制一份,把复制的值进行进行转换。

而且对转换前的值和类型不存在任何影响。

转换。

而且对转换前的值和类型不存在任何影响。

转换。

而且对转换前的值和类型不存在任何影响。

转换。

而且对转换前的值和类型不存在任何影响。

表达式值的类型及类型转换nn类型转换分为隐形类型转换和强制类型转换;nn由系统自动进行的成为隐形转换;nn强制类型转换是可以明确指出转换后数值的类型的一种操作。

格式:

格式:

(要求的类型要求的类型)表达式表达式作用:

把表达式的值转换成相应的类型;作用:

把表达式的值转换成相应的类型;如:

如:

(int)10.24(float)34(int)10.24(float)34(int)3.0/2(int)3.0/2(int)3.0/2int)3.0/2(int)(3.0/2int)(3.0/2)整型和整型转换nn字节少的向字节多的转换会后值不变;nn字节多的向字节少的转换:

去掉高位部分,值可能发生改变;整型和浮点型转换nn整型到浮点型:

直接转换(后面加.0);nn浮点型到整型:

取整数部分,当超出表示范围时,可能出现错误的结果;提示:

当浮点数很接近比它大的整型数时,由提示:

当浮点数很接近比它大的整型数时,由于转换误差的原因,可能转换成此整型数;如于转换误差的原因,可能转换成此整型数;如11.9911.99转换成整型数时为转换成整型数时为1212。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 纺织轻工业

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1