收藏 分享(赏)

第2章 运算符与表达式.ppt

上传人:dwy79026 文档编号:4788989 上传时间:2019-01-13 格式:PPT 页数:25 大小:772KB
下载 相关 举报
第2章 运算符与表达式.ppt_第1页
第1页 / 共25页
第2章 运算符与表达式.ppt_第2页
第2页 / 共25页
第2章 运算符与表达式.ppt_第3页
第3页 / 共25页
第2章 运算符与表达式.ppt_第4页
第4页 / 共25页
第2章 运算符与表达式.ppt_第5页
第5页 / 共25页
点击查看更多>>
资源描述

1、http:/,第二章 运算符与表达式,2.1 C语言运算符简介,口诀:初一算关逻挑胡豆,2.1 C语言运算符简介,运算符的结合性和优先级,运算符的优先级,指不同的运算符在表达式中进行运算的先后次序。如 : a+b*c,当一个运算对象的两侧的运算符的优先级相同时,运算的结合方向称为结合性。运算符的结合性分为左结合和右结合两种。如:a+b+c,运算符的结合性,表达式用运算符将操作对象连接起来、符合C语法规则的式子称为表达式。每一个表达式也都具有一定的值。如:89的值为0,97的值为1,7+9的值为16 逗号运算符和逗号表达式 一般形式为: 表达式1, 表达式2,表达式3,表达式n 逗号表达式的值:

2、等于表达式n的值 如:x=(7+8,9,80) x的值为80,2.1 C语言运算符简介,5.5%2,2.2算术运算符和算术表达式,基本算术运算符: + - * / %,取整 :两整数相除,结果为整数 例: 5/2 = 2 3 / 4=0区别: -5/2.0 = -2.5 3.0/4=0.75取余(%):两整数相除,结果为他们的余数;要求两侧必须都为整型数据 。 如: -5%2= -1 1%10=1 5%1=0,例:求出整数457的个位、十位、百位。 分析:1.求个位的方法:457%102.求十位的方法:457/10%103.求百位的方法:457/100 或457/10/10%10,2.2算术运

3、算符和算术表达式,定理:1.任何一个整数除以10取整则去掉这个整数的个位2.任何一个整数除以10取余则得到这个整数的个位,自增自减运算符,2.2算术运算符和算术表达式,作用:使变量的值增1或减1。,前置: (先执行i=i+1或i=i-1,再使用i值) 如:i=1;a=+i;a=2;(i=2)i=1; a=-i; a=0; (i=0) 后置: (先使用i值,再执行i=i+1或i=i-1) 如: i=1;a=i+;a=1;(i=2)i=1;a=i-;a=1;(i=0) + - 不能用于常量和表达式 如:5+,(a+b)+,2.3赋值运算符和赋值表达式,简单赋值运算符 = 如:a=9 复合赋值运算符

4、: += -= *= /= %= = &= = |=例:a=5 a=aa*=c5 a=a*(c+5)=左侧必须是变量,不能是常量或表达式 结合方向:自右向左,例:int x,y;x=3;y=5; 表达式 x=y/=2的值为?,x%=y/=2 先算y/=2 y=5/2 y= 2 再算 x%=2 x=3%2 x=1,求表达a+=a-=a*=a的值,其中a的初值12 。,2.3赋值运算符和赋值表达式,分析:先算a*=a - a=a*a=144(a的值已经被修改为144)再算 a-=144 -a=a-144=0(a的值已经被修改为144)最后算a+=0所以 表达式a+=a-=a*=a的值为0,赋值运算

5、中的类型转换,2.3赋值运算符和赋值表达式,(1)当实型数据赋值给整型变量时,将实型数据的小数部分截断。 如int x;,执行“x=5.21;”后,x的值为5。 (2)当整型数据赋值给实型变量时,数值不变,但以浮点数形式 存储到实型变量中。 如float x=45; 输出x 的结果为45.000000。 (3)当整型、短整型、长整型数据赋值给一个char类型变量时,将其低8位原封不动地送到char类型变量中(即截断)。,低字节和高字节 1个字节=8个二进制位 2个字节=16个二进制位 如:int a=256; 256转换为二进制:1 00000000 但a是整型变量所以又可以表示为: 0000

6、0001 00000000 共16个二进制位 右边的二进制位称为低位,构成字节的称低字节 左边的二进制位称为高位,构成字节的称高字节 最高位为1时表示负数,为0时表示正数。,2.3赋值运算符和赋值表达式,2.4 位运算,位运算就是指对存储单元二进制位的运 ,只能对整型或字符型数据进行位运算,不能用于实型数据。,“按位与”运算符(&),1)规则: 参与运算的两数(负数以补码方式出现)各对应的二进位相与,只有对应的两个二进位均为1时,结果位才为1,否则为0,它是双目运算符。即:0&0=0;0&1=0;1&0=0;1&1=1。 例如: 9&5可写算式如下: 9的二进制: 0 0 0 0 1 0 0

7、1 5的二进制: 0 0 0 0 0 1 0 1& _0 0 0 0 0 0 0 1 可见9&5=1。,“按位与”运算符(&),9&5可写算式如下: 9的二进制补码: 11111111 1 1 1 1 0 11 1 5的二进制补码: 11111111 1 1 1 1 1 01 1& _ -13的二进制补码 11111111 1 1 1 1 0 01 1,可见9&5=13。,(2)特殊用途: 清零、取指定位,补码:存放负数的方法。 表示方式:先将负数取绝对值后再转换为二进制,然后将二进制按位求反再加一。,“按位或”运算符(|),(1)规则参与运算的两数(负数以补码出现)各对应的二进位相或(即逻辑

8、加)。只要对应的两个二进位有一个为1时,结果位就为1,它是双目运算符。即:0|0=0;0|1=1;1|0=1;1|1=1。 例如:9|5 :0 0 0 0 1 0 0 10 0 0 0 0 1 0 1| _0 0 0 0 1 1 0 1 (十进制13) 可见9|5=13。,“按位或”运算符(|),(2)特殊用途将一个数据的某些指定的位置为1。将该数按位或一个特定的数,该特定的数的相应位置为1。,“按位异或”运算符(),(1)规则参与运算的两数(负数以补码出现)各对应的二进位相异或,当两对应的二进位相异时,结果为1,它是双目运算符。即:00=0;01=1;10=1;11=0。例如:95 :0 0

9、 0 0 1 0 0 10 0 0 0 0 1 0 1_0 0 0 0 1 1 0 0 (十进制12) 可见95=12。,“按位异或”运算符(),(2)特殊用途 使特定位翻转 要使哪几位翻转就将与其进行“按位异或”运算的数的相应位置为1。 使特定位保留原值要使哪几位保留原值就将与其进行“按位异或”运算的数的相应位置为0。 交换两个值,不用临时变量a=ab;b=ab;a=ab;,“求反”运算符 (),1)规则对参与运算的数的各二进位按位求反,它是单目运算符,具有右结合性。即:0=1;1=0。 例如:9的运算为00000000 00001001-11111111 11110110,“求反”运算符

10、(),(2)用途适当的使用可增加程序的移植性。,“左移”运算符(),1)规则二进位全部左移若干位,由“”右边的数指定移动的位数,高位丢弃,低位补0,它是双目运算符。例如:a4指把a的各二进位向左移动4位。如a=00000011(十进制3),左移4位后为00110000(十进制48)。,“左移”运算符(),(2)特殊用途左移1位相当于该数乘以2;左移n位相当于该数乘以2n。但此结论只适用于该数左移时被溢出舍弃的高位中不包含1的情况。左移比乘法运算快得多,有的C编译系统自动将乘2运算用左移一位来实现。,“右移”运算符(),(1)规则二进位全部右移若干位,“”右边的数指定移动的位数。 (2)特殊用途右移1位相当于该数除以2;右移n位相当于该数除以2n。,n,“右移”运算符(),(3)说明对于有符号数,在右移时,符号位将随同移动。当为正数时,最高位补0;而为负数时,符号位为1,最高位是补0还是补1取决于计算机系统的规定。移入0的称为“逻辑右移”;移入1的称为“算术右移”。我们可以通过编写程序来验正所使用的系统是采用“逻辑右移”还是“算术右移”。很多系统规定为补1,即“算术右移”(vc也是)。 如: a: 10010111 11101101 a1: 01001011 11110110 ( 逻辑右移) a1: 11001011 11110110 ( 算术右移),位复合赋值运算符,

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

当前位置:首页 > 实用文档 > 统计图表

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报