[教育学]C++语言运算符及表达式

上传人:油条 文档编号:53448387 上传时间:2018-08-31 格式:PPT 页数:31 大小:398KB
返回 下载 相关 举报
[教育学]C++语言运算符及表达式_第1页
第1页 / 共31页
[教育学]C++语言运算符及表达式_第2页
第2页 / 共31页
[教育学]C++语言运算符及表达式_第3页
第3页 / 共31页
[教育学]C++语言运算符及表达式_第4页
第4页 / 共31页
[教育学]C++语言运算符及表达式_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《[教育学]C++语言运算符及表达式》由会员分享,可在线阅读,更多相关《[教育学]C++语言运算符及表达式(31页珍藏版)》请在金锄头文库上搜索。

1、C+语言运算符及表达式,武汉电力职业技术学院 机电工程系,C+语言运算符分类,算术运算符; 关系运算符; 逻辑运算符; 自增、自减运算符; 赋值运算符; 复合运算符; 逗号运算符; 位运算符; 条件运算符等,算术运算符,包括:+(加)、-(减)、*(乘) 、/(除) 、%(求余数) %(求余数)要求运算的数必须是整型数(或字符)。计算方法:结果=被除数-除数*商 示例:1+2 3.0-4.9 4.9*10 4*20 3%2 求下列式子的值:9%3 1%3 10%3 10%-3 -10%3 -10%-3,提示:同类型的数运算结果还是相同的类型,而不能是其他类型。,计算: 3/2 1/3*3 3.

2、0/2.0 1.0/3.0*3.0,赋值运算符(=),赋值运算符只能把右侧表达式的值赋值给左侧的一个变量;(左侧不能是表达式或常量) 赋值运算符计算的结果为左侧变量的值;,int a,b; a=a+1; a=30; a=30+2; a=a+1; b=a;,int a,b; a+10=30; a+b=a+1; a=10; 10=a;,int a,b; a=(b=30);,关系运算符,关系运算符指的是进行关系比较的运算符: (大于)、=(大于等于)、12 12.0=A A!=B,逻辑运算符,用于逻辑运算(真假判断),其计算结果只能是“真”(1)或“假”(0)。有: | 或(左右表达式只要一个成立则

3、结果为真,中间不能有空格) & 与(左右表达式都成立则结果为真,中间不能有空格) ! 取反(真变成假、假变成真) C+语言规定所有非零的值都为“真”; 如: 12 | 12 的计算结果为1;0 | 0的计算结果为0;12 & 0的计算结果为0;!0 为真 而 !12为假,运算符优先级和结合性,优先级:为解决当多个字符在一起运算时,先算哪个运算符后算哪个运算符的问题; 每个运算符都有自己的优先级; 在运算的过程中,优先级别高的先运算,而优先级别低的后运算; 同级别的运算符在式中运算顺序和运算符的结合性有关,一般运算符是从左到右的结合性,所以按从左到右按顺序进行计算; ()可以改变运算符的优先级别

4、,C+语言任何时候都先算最内层()中的表达式;(10*(10+10)*(10*2/(10+10))=?,常见运算符优先级,简单的运算符优先级,单目运算符 (只有一个数),算术运算符 (* / % 比+ -优先级别高),关系运算符 (等于和不等于比其他几种低),逻辑运算符 (& 大于 |),赋值(复合赋值)运算符,低,高,位运算符,逗号运算符的级别最低,运算符优先级和结合性,结合性:指运算符在运算时优先和后面还是前面的量进行结合,从而构成一个表达式。 除了个别运算符以外,其他的都是从左到右; 单目运算符及赋值(复合赋值)运算符为从右到左。,运算符优先级和结合性,10+20 20+30*2 40*

5、50/30 4.0/5.0 10+(30/20+10/12+10%12) 53 5=5 5+10 20 57=510 3=3 | 37=7!=7、移动位数(整型数=0)如: 1010 1010 4 作用:数据(二进制形式)向右移动规定的位数; 空出高位的处理: 有符号数:数据原来最高位为几(0或1),则空出来的最高补几。(0补0,1补1)。 无符号数:高位一律补0;,位运算符-左移,左移: 格式:数据=0)如: 1010 1010 = |= &= = = 复合运算符级别低(倒数第二);,int a=10; a+=20; /*等价于 a=a+20*/ a-=10; /*等价于 a=a-20*/

6、a/=20; /*等价于 a=a/20*/,int a=10; a*=10+20; a*=2*a-10;,sizeof运算符和逗号运算符,sizeof运算符用于求变量或常量占用的字节数:如sizeof(int)=4 、 sizeof(10.0)=8 sizeof(long int)=4 逗号运算符:级别最低,可以把多个表达式连接起来。如:int a,b,c;,表达式,表达式:就是利用运算符把变量、常量连接起来满足C+语言要求的式子。 注意实现: 注意优先级别; 注意变量名称的要求; 注意数据类型; 无法直接表达的必须进行转换,如:r2,表达式示例,a+bc,12+bc,a+18(ab+20)-

7、30 c,y=abc,S= r2,y=+10,y=sinx+cosy+x,表达式值的类型及类型转换,如何转换下面的表达式?,1,abc,2,y=,y=1/2*a*b*c (正确吗?为什么),表达式值的类型及类型转换,表达式值的类型由参与计算数的类型决定;如:1/2 1.0/2.0 不同类型的数据在计算时如何确定类型? 字符型在计算时直接转换成整型值进行计算; float在计算时直接转换成double值进行计算; 不同类型在计算时,系统自动把值精度低转换成精度高的,而且转换总是依逐个运算符进行的。此过程成为类型转换。,表达式值的类型及类型转换,long,unsigned,int,char,2.0

8、 + 1/2; 表达式的值及类型?,2.0 double,double,float,unsigned long,表达式值的类型及类型转换,f的类型?,int double double,double,已知:int i; long int e; float f; double d;f = 10 + a + i * f - d / e,double,转换过程中的类型转换不是量本身数据类型的转换,而是把其值复制一份,把复制的值进行进行转换。而且对转换前的值和类型不存在任何影响。,表达式值的类型及类型转换,类型转换分为隐形类型转换和强制类型转换; 由系统自动进行的成为隐形转换; 强制类型转换是可以明确指出转换后数值的类型的一种操作。 格式:(要求的类型)表达式 作用:把表达式的值转换成相应的类型; 如:(int)10.24 (float)34 (int)3.0/2 (int)3.0/2 (int)(3.0/2),整型和整型转换,字节少的向字节多的转换会后值不变; 字节多的向字节少的转换:去掉高位部分,值可能发生改变;,整型和浮点型转换,整型到浮点型:直接转换(后面加.0); 浮点型到整型:取整数部分,当超出表示范围时,可能出现错误的结果; 提示:当浮点数很接近比它大的整型数时,由于转换误差的原因,可能转换成此整型数;如11.99 转换成整型数时为12。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号