《第2章运算符与表达式精选PPT.ppt》由会员分享,可在线阅读,更多相关《第2章运算符与表达式精选PPT.ppt(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第2章运算符与表达章运算符与表达式式第1页,此课件共25页哦2.1 C语言运算符简介语言运算符简介初初等运算符等运算符()()-.1 1自左至右自左至右(一)(一)单目运算符单目运算符!+-(!+-(类型类型)*&sizeof)*&sizeof2 2自右至左自右至左算算数运算符数运算符*/%*/%3 3自左至右自左至右+-+-4 4自左至右自左至右 (左移右移运算符)左移右移运算符)5 5自左至右自左至右关关系运算符系运算符 =6 6自左至右自左至右=!=!=7 7自左至右自左至右&(按位与运算符)(按位与运算符)8 8自左至右自左至右 (按位异或运算符)(按位异或运算符)9 9自左至右自左
2、至右|(按位或运算符)(按位或运算符)1010自左至右自左至右逻逻辑运算符(不包括!)辑运算符(不包括!)&1111自左至右自左至右|1212自左至右自左至右(挑)条(挑)条件运算符件运算符?:?:1313自右至左自右至左(胡)赋(胡)赋值运算符值运算符=+=-=*=/=%=9的值为的值为0,97的值为的值为1,7+9的值为的值为162.1 C语言运算符简介语言运算符简介第4页,此课件共25页哦5.5%22.22.2算术运算符和算术表达式算术运算符和算术表达式基本算术运算符:+-*/%取整取整(/):两整数相除,结果为整数(两整数相除,结果为整数(两整数相除,结果为整数(两整数相除,结果为整数
3、(去掉小数部分去掉小数部分去掉小数部分去掉小数部分)例例例例:5/2=2 3/4=0 (“/”:5/2=2 3/4=0 (“/”左右两侧均为整型数据左右两侧均为整型数据)除除法法(/)只要有实型数据就是除法运算只要有实型数据就是除法运算只要有实型数据就是除法运算只要有实型数据就是除法运算例:例:例:例:-5/2.0=-2.5 3.0/4=0.75-5/2.0=-2.5 3.0/4=0.75取余取余(%):两整数相除,结果为他们的余数;两整数相除,结果为他们的余数;要求要求要求要求“%”两侧必须都为整型数据两侧必须都为整型数据两侧必须都为整型数据两侧必须都为整型数据 如:如:如:如:-5%2=-
4、1 1%10=1 5%1=0区别:区别:(intint)5.5/25.5/2第5页,此课件共25页哦例:求出整数例:求出整数457的个位、十位、百位。的个位、十位、百位。分析:分析:1.求个位的方法:求个位的方法:457%10 2.求十位的方法:求十位的方法:457/10%10 3.求百位的方法:求百位的方法:457/100 或或457/10/10%102.22.2算术运算符和算术表达式算术运算符和算术表达式定理:定理:1.1.任何一个整数除以任何一个整数除以1010取整则去掉这个整数的个位取整则去掉这个整数的个位 推理:除以推理:除以100100取整则去掉个位和十位取整则去掉个位和十位 2.
5、2.任何一个整数除以任何一个整数除以1010取余则得到这个整数的个位取余则得到这个整数的个位 推理:除以推理:除以100100取余则得到个位和十位取余则得到个位和十位#includemain()int a=457;printf(去掉个位后的数=%d,a/10);printf(n去掉个位和十位后的数=%d,a/100);printf(n得到个位的数=%d,a%10);printf(n得到个位和十位的数=%dn,a%100);“%d”为格式符,表示:屏幕输出显示时出现“%d”的地方用逗号后面的一个整数值替换。第6页,此课件共25页哦v自增自减运算符自增自减运算符 2.22.2算术运算符和算术表达式
6、算术运算符和算术表达式作用:使变量的值增作用:使变量的值增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)+#includemain()int a,i=1;a=+i;printf(前置时前置时:a=%d i=%d,a,i);i=1;a=i+;pr
7、intf(n后置时后置时:a=%d i=%dn,a,i);第7页,此课件共25页哦2.32.3赋值运算符和赋值表达式赋值运算符和赋值表达式简单赋值运算符简单赋值运算符简单赋值运算符简单赋值运算符 =如:如:如:如:a=9a=9a=9a=9复合赋值运算符:复合赋值运算符:复合赋值运算符:复合赋值运算符:+=-=*=/=%=&=|=+=-=*=/=%=&=|=+=-=*=/=%=&=|=+=-=*=/=%=&=|=例:例:例:例:a a a a=5=5=5=5 a=a a=a a=a a=a a*=ca*=ca*=ca*=c5 5 5 5 a=a*(c+5)a=a*(c+5)a=a*(c+5)a=
8、a*(c+5)=左侧必须是变量,不能是常量或表达式左侧必须是变量,不能是常量或表达式左侧必须是变量,不能是常量或表达式左侧必须是变量,不能是常量或表达式结合方向:自右向左结合方向:自右向左结合方向:自右向左结合方向:自右向左例:例:int x,y;x=3;y=5;表达式表达式 x=y/=2的值为?的值为?x%=y/=2x%=y/=2先算先算y/=2y/=2 y=5/2 y=2y=5/2 y=2再算再算 x%=2 x%=2 x=3%2 x=1 x=3%2 x=1 第8页,此课件共25页哦2.32.3赋值运算符和赋值表达式赋值运算符和赋值表达式求表达求表达a+=a-=a*=a的值,其中的值,其中a
9、的初值的初值12。分析:先算分析:先算a*=aa*=a -a=a*a=144 -a=a*a=144(a a的值已经被修改为的值已经被修改为144144)再算再算 a-=a*=a a-=a*=a 因为因为a*=aa*=a的值为的值为144 144 所以化简为所以化简为 a-=144-a=a-144=0a-=144-a=a-144=0(a的值已经被修改为的值已经被修改为144)最后算最后算a+=0a+=0 所以所以 表达式表达式a+=a-=a*=aa+=a-=a*=a的值为的值为0 0第9页,此课件共25页哦v赋值运算中的类型转换赋值运算中的类型转换 2.32.3赋值运算符和赋值表达式赋值运算符和
10、赋值表达式(1)当实型数据赋值给整型变量时,将实型数据的小数部分截断。当实型数据赋值给整型变量时,将实型数据的小数部分截断。如如int x;,执行执行“x=5.21;”后,后,x的值为的值为5。(2)当整型数据赋值给实型变量时,数值不变,但以浮点数形式当整型数据赋值给实型变量时,数值不变,但以浮点数形式存储到实型变量中。存储到实型变量中。如如float x=45;输出输出x 的结果为的结果为45.000000。(3)当整型、短整型、长整型数据赋值给一个当整型、短整型、长整型数据赋值给一个char类型变量时,类型变量时,将其低将其低8位原封不动地送到位原封不动地送到char类型变量中类型变量中(
11、即截断即截断)。第10页,此课件共25页哦2.4逗号运算符和逗号表达式逗号运算符和逗号表达式v逗号运算符(逗号运算符(,)和逗号表达式)和逗号表达式一般形式为一般形式为 表达式表达式1,表达式表达式2,表达式表达式3,表达式表达式n逗号表达式的值:逗号表达式的值:等于表达式等于表达式n n的值的值如:如:x=(7+8,9,80)x的值为的值为80(x=7+8,9,80)x的值为的值为15 括号内的值为括号内的值为80第11页,此课件共25页哦2.4 位运算位运算 位运算就是指对存储单元二进制位的运位运算就是指对存储单元二进制位的运 ,只能对整型或字符型数据进行位运算,不只能对整型或字符型数据进
12、行位运算,不能用于实型数据。能用于实型数据。第12页,此课件共25页哦“按位与按位与”运算符运算符(&)1)规则:)规则:参与运算的两数(负数以补码方式出现)参与运算的两数(负数以补码方式出现)参与运算的两数(负数以补码方式出现)参与运算的两数(负数以补码方式出现)各对应的二进位相各对应的二进位相与与,只有对应的两个二进位均为,只有对应的两个二进位均为,只有对应的两个二进位均为,只有对应的两个二进位均为1时,结果位才为时,结果位才为1,否,否则为则为0 0,它是双目运算符。,它是双目运算符。即:即:0&0=00&0=0;0&1=00&1=0;1&0=01&0=0;1&1=11&1=1。例如:例
13、如:例如:例如:9&5可写算式如下:可写算式如下:可写算式如下:可写算式如下:9 9的二进制:的二进制:的二进制:的二进制:0 0 0 0 1 0 0 10 0 0 0 1 0 0 15的二进制:的二进制:的二进制:的二进制:0 0 0 0 0 1 0 10 0 0 0 0 1 0 1&_&_ 0 0 0 0 0 0 0 10 0 0 0 0 0 0 1可见可见9&5=19&5=1。第13页,此课件共25页哦“按位与按位与”运算符运算符(&)9&9&5可写算式如下:可写算式如下:9 9的二进制补码:的二进制补码:1111111111111111 1 1 1 1 0 11 1 1 1 1 1 0
14、 11 15 5的二进制补码:的二进制补码:的二进制补码:的二进制补码:11111111 1 1 1 1 1 01 1 1 1 1 1 1 01 1&_&_-13的二进制补码的二进制补码的二进制补码的二进制补码 11111111 1111111 1 1 1 1 0 01 1可见可见9&9&5=5=1313。(2 2)特殊用途:)特殊用途:清零、取指定位清零、取指定位补码:存放负数的方法。补码:存放负数的方法。表示方式:先将负数取绝对值后再转换为二进制,然后将二进制按位求反再加一。表示方式:先将负数取绝对值后再转换为二进制,然后将二进制按位求反再加一。第14页,此课件共25页哦“按位或按位或”运
15、算符(运算符(|)(1 1)规则)规则 参与运算的两数(负数以补码出现)各对应的参与运算的两数(负数以补码出现)各对应的二进二进位相或位相或(即逻辑加)。只要对应的两个二进位有一个(即逻辑加)。只要对应的两个二进位有一个为为1 1时,结果位就为时,结果位就为1 1,它是双目运算符。,它是双目运算符。即:即:0|0=00|0=0;0|1=10|1=1;1|0=11|0=1;1|1=11|1=1。例如:例如:9|5 9|5:0 0 0 0 1 0 0 10 0 0 0 1 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1|_|_ 0 0 0 0 1 1 0 1 (0 0
16、0 0 1 1 0 1 (十进制十进制13)13)可见可见9|5=139|5=13。第15页,此课件共25页哦“按位或按位或”运算符(运算符(|)(2 2)特殊用途)特殊用途 将一个数据的某些指定的位将一个数据的某些指定的位置为置为1 1。将该数按位或一个特定的数,该特定的将该数按位或一个特定的数,该特定的数的相应位置为数的相应位置为1 1。第16页,此课件共25页哦“按位异或按位异或”运算符运算符()()(1)规则)规则 参与运算的两数(负数以补码出现)各对应的参与运算的两数(负数以补码出现)各对应的参与运算的两数(负数以补码出现)各对应的参与运算的两数(负数以补码出现)各对应的二进位相异或
17、二进位相异或二进位相异或二进位相异或,当两对应的二进位相异时,结果为当两对应的二进位相异时,结果为1 1,它是双目运算符。,它是双目运算符。,它是双目运算符。,它是双目运算符。即:即:即:即:00=000=0;01=101=1;10=110=1;11=011=0。例如:例如:95 95 :0 0 0 0 1 0 0 10 0 0 0 1 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1 _ _ 0 0 0 0 1 1 0 0 (十进制十进制12)12)可见可见可见可见95=1295=12。第17页,此课件共25页哦“按位异或按位异或”运算符运算符()()(2)特殊用途
18、)特殊用途使特定位翻转使特定位翻转 要使哪几位翻转就将与其进行要使哪几位翻转就将与其进行“按位异或按位异或”运算的运算的数的相应位置为数的相应位置为1。使特定位保留原值使特定位保留原值 要使哪几位保留原值就将与其进行要使哪几位保留原值就将与其进行“按位异或按位异或”运运算的数的相应位置为算的数的相应位置为0。交换两个值,不用临时变量交换两个值,不用临时变量 a=ab;b=ab;a=ab;第18页,此课件共25页哦“求反求反”运算符运算符 ()()1)规则)规则 对参与运算的数的各二进位对参与运算的数的各二进位按位求反按位求反,它是单,它是单目运算符,具有右结合性。目运算符,具有右结合性。即:即
19、:0=10=1;1=01=0。例如:例如:9 9的运算为的运算为 00000000 00000000 0000100100001001 -11111111 11111111 11110110 11110110 第19页,此课件共25页哦“求反求反”运算符运算符 ()()(2 2)用途)用途 适当的使用可增加程序的移植性适当的使用可增加程序的移植性。第20页,此课件共25页哦“左移左移”运算符运算符()()1)规则)规则 二进位全部左移若干位二进位全部左移若干位,由,由“”右右边的数指定移动的位数,边的数指定移动的位数,高位丢弃,低位高位丢弃,低位补补0,它是双目运算符。,它是双目运算符。例如:
20、例如:a4指把指把a的各二进位向左移动的各二进位向左移动4位。位。如如a=00000011(十进制十进制3),左移,左移4位后为位后为00110000(十进制十进制48)。第21页,此课件共25页哦“左移左移”运算符运算符()()()(1)规则)规则 二进位全部二进位全部右移若干位右移若干位,“”右边的数右边的数指定移动的位数。指定移动的位数。(2)特殊用途)特殊用途 右移右移1位相当于该数除以位相当于该数除以2;右移;右移n位相当位相当于该数除以于该数除以2n。第23页,此课件共25页哦“右移右移”运算符运算符()()(3 3 3 3)说明)说明)说明)说明 对于有符号数,在右移时,符号位将
21、随同移动。当为正对于有符号数,在右移时,符号位将随同移动。当为正对于有符号数,在右移时,符号位将随同移动。当为正对于有符号数,在右移时,符号位将随同移动。当为正数时,最高位补数时,最高位补数时,最高位补数时,最高位补0 0 0 0;而为负数时,符号位为;而为负数时,符号位为1 1 1 1,最高位是,最高位是,最高位是,最高位是补补补补0 0 0 0还是补还是补还是补还是补1 1 1 1取决于计算机系统的规定取决于计算机系统的规定取决于计算机系统的规定取决于计算机系统的规定。移入。移入0 0的称为的称为的称为的称为“逻辑逻辑逻辑逻辑右移右移右移右移”;移入;移入;移入;移入1 1的称为的称为“算
22、术右移算术右移”。我们可以通过编。我们可以通过编写程序来验正所使用的系统是采用写程序来验正所使用的系统是采用“逻辑右移逻辑右移”还是还是“算术右移算术右移”。很多系统规定为补很多系统规定为补很多系统规定为补很多系统规定为补1 1 1 1,即,即,即,即“算术右移算术右移算术右移算术右移”(vc(vc也是也是也是也是)。如:如:如:如:a:a:10010111 10010111 10010111 10010111 11101101111011011110110111101101a1:a1:a1:a1:0 0 0 01001011 11110110 (1001011 11110110 (1001011 11110110 (1001011 11110110 (逻辑右移逻辑右移逻辑右移逻辑右移)a1:a1:a1:a1:1 1 1 11001011 11110110 (1001011 11110110 (1001011 11110110 (1001011 11110110 (算术右移算术右移算术右移算术右移)第24页,此课件共25页哦位复合赋值运算符位复合赋值运算符运算符名称例子等价于&=位与赋值a&=ba=a&b|=位或赋值a|=ba=a|b=位异或赋值a=ba=ab=右移赋值a=ba=ab=左移赋值a=ba=ab第25页,此课件共25页哦