C语言关系运算符和位运算符.pptx

上传人:莉*** 文档编号:73646624 上传时间:2023-02-21 格式:PPTX 页数:42 大小:192.39KB
返回 下载 相关 举报
C语言关系运算符和位运算符.pptx_第1页
第1页 / 共42页
C语言关系运算符和位运算符.pptx_第2页
第2页 / 共42页
点击查看更多>>
资源描述

《C语言关系运算符和位运算符.pptx》由会员分享,可在线阅读,更多相关《C语言关系运算符和位运算符.pptx(42页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、本节主要内容介绍u 3.5.5 关系运算符和关系表达式u 3.5.6 逻辑运算符和逻辑表达式u 3.5.7 条件运算符和条件表达式u 3.5.9 位运算符u 3.5.10 求字节运算符第1页/共42页 3.5.5关系运算符和关系表达式1.1.关系运算符及其优先次序关系运算符及其优先次序1.1.(小于小于)2.2.=(大于大于)4.4.=(=(大于或等于大于或等于)5.5.=(=(等于等于)6.6.!=(!=(不等于不等于)优先级相同(高)优先级相同(高)优先级相同(低)优先级相同(低)说明:关系运算符的优先级低于算术运算符关系运算符的优先级低于算术运算符关系运算符的优先级高于赋值运算符关系运算

2、符的优先级高于赋值运算符第2页/共42页关系运算符和关系表达式如如:ca+b:ca+b ab!=c ab!=c a=bc a=bc a=bc 建议:使用建议:使用建议:使用建议:使用()()能使关系更清晰!能使关系更清晰!能使关系更清晰!能使关系更清晰!c(a+b)c(a+b)(ab)!=c(ab)!=c a=(bc)a=(bc)a=(bc)第3页/共42页2.2.关系表达式关系表达式用关系运算符将两个表达式(可以是算术表达式或用关系运算符将两个表达式(可以是算术表达式或 关系表达式,逻辑表达式,赋值表达式,字符表达式)关系表达式,逻辑表达式,赋值表达式,字符表达式)接起来的式子,称关系表达式

3、接起来的式子,称关系表达式例:例:ab,a+bb+c,(a=3)(b=5),ab)(bb”的值为的值为“真真”,表达式的值为,表达式的值为1。a=3,b=2,c=1 则关系表达式“(ab)=c”的值为1C C语言中没有专用语言中没有专用的逻辑值,的逻辑值,1 1代表代表真,真,0 0代表假代表假关系运算符和关系表达式第4页/共42页关系运算符和关系表达式例例 int i=1,j=7,a;int i=1,j=7,a;a=i+(j%4!=0);a=i+(j%4!=0);则则 a a的值为的值为例例例例 int int a=3,b=2,c=1,d,f;a=3,b=2,c=1,d,f;ab ab (a

4、b)=c (ab)=c b+ca b+cb d=ab f=abc f=abc (a=5)(b=4)(a=5)(b=4)ab ab)(bb)(b 0 a 0 结果为结果为 A 100 A 100 结果为结果为例例 若若a=0;b=0.5;x=0.3;a=0;b=0.5;x=0.3;则则 a a=x=b=xb)=(b+c)避免类似错误:如:要表示xa,b,不可写为:a=x=a)&(x=b)应避免对实数作相等或不等的判断。如:1.0/3.0*3.0=1.0 结果为 0.可改写为:fabs(1.0/3.0*3.0-1.0)3 看成“真”&“真”值为1l注意:数学上关系式 0 x 100 要写成:0=x

5、&xb&xyab&xy a=b|x=y a=b|x=y !a|ab !a|ab 如:如:(ab)&(xy)(ab)&(xy)(a=b)|(x=y)(a=b)|(x=y)(!a)|(ab)(!a)|(ab)建议:建议:建议:建议:使用使用使用使用()()能使关系更清晰!能使关系更清晰!能使关系更清晰!能使关系更清晰!第9页/共42页2.2.逻辑表达式逻辑表达式用逻辑运算符将关系表达式或逻辑量连接起来的式子就用逻辑运算符将关系表达式或逻辑量连接起来的式子就 是逻辑表达式。是逻辑表达式。逻辑表达式的值应该是一个逻辑量逻辑表达式的值应该是一个逻辑量“真真”或或“假假”。例:例:设设a=4a=4,b=5

6、b=5:!a!a的值为的值为0 a&b0 a&b的值为的值为1 1a|ba|b的值为的值为1 !a|b1 !a|b的值为的值为1 14&0|24&0|2的值为的值为1 1任何非零的数值被认作任何非零的数值被认作“真真”逻辑运算符和逻辑表达式第10页/共42页例:例:53&83&84-!0 自左向右运算自左向右运算 1&0逻辑值为083逻辑值为1表达式值为0逻辑运算符和逻辑表达式第11页/共42页在逻辑表达式的求解中,在逻辑表达式的求解中,并不是所有的逻辑运算符都要被执行并不是所有的逻辑运算符都要被执行。(1)a&b&c (1)a&b&c 只有只有a a为真时,才需要判断为真时,才需要判断b b

7、的值的值,只有,只有a a和和b b都为真时,都为真时,才需要判断才需要判断c c的值。的值。(2)a|b|c (2)a|b|c 只要只要a a为真,就不必判断为真,就不必判断b b和和c c的值,的值,只有只有a a为假,才为假,才 判断判断b b。a a和和b b都为假才判断都为假才判断c c例:(m=ab)&(n=cd)当当a=1,b=2,c=3,d=4,ma=1,b=2,c=3,d=4,m和和n n的原值为的原值为1 1时,由于时,由于“abab”的值的值为为0 0,因此,因此m=0m=0,而,而“n=cdn=cd”不被执行,因此不被执行,因此n n的值不是的值不是0 0而而仍保持原值

8、仍保持原值1 1。逻辑运算符和逻辑表达式第12页/共42页逻辑运算符和逻辑表达式例例例例3.12 3.12 逻辑表达式的不完全计算逻辑表达式的不完全计算逻辑表达式的不完全计算逻辑表达式的不完全计算 void main()void main()int a,b,c,d;int a,b,c,d;a=0;a=0;b=1;b=1;c=a+&b+;c=a+&b+;d=a+|b+;d=a+|b+;printf(a=%d,b=%d,c=%d,d=%dn,a,b,c,d);printf(a=%d,b=%d,c=%d,d=%dn,a,b,c,d);a=2,b=1,c=0,d=1第13页/共42页逻辑运算符和逻辑表

9、达式逻辑运算符的应用:(1)表示成绩(grade)在90以上(含)和60分以下的情况:grade=90|grade0&(x%2=0)(3)判断闰年的条件是符合下列两种之一:能被4整除,但不能被100整除;能被400整除 (year%4=0&year%100!=0)|(year%400=0)(4)表示 x 是数字字符的情况 x=0&x=48&xy+B)x=y-z D)y%z=y-z2、x为奇数时值为“真”,x为偶数时值为“假”,表达式是()A)!(x%2=1)B)x%2=0 C)x%2 D)!(x%2)3、已有定义语句:int m=0,n=1;执行表达式(m=59)后,n的值是()A)1 B)2

10、 C)3 D)44、已有定义语句:int m=0,n=3;执行表达式(m=53)|(n=7=100)&(s300)(B)100=s=100)&(s=100)and(s300)6若定义 int a=2,b=3;则表达式!a|b 的值为()。(A)0 (B)1 (C)2 (D)37设整型变量x为7,使整型变量y不为2的表达式是()。(A)y=x%3 (B)y=x/3 (C)y=(+x)/3 (D)y=8-(-x)第16页/共42页3.5.7条件运算符和条件表达式 C语言提供了一个简单的条件赋值语句或条件表达式。l一般形式 表达式1?表达式2:表达式3l功能:先判表达式1,若非0,则值为表达式2的值

11、,否则为表达式3的值。条件运算符的优先级高于赋值运算符,但低于关系运算符和逻辑运算符。例如:a=1;b=2;c=ab?3:4;main()int i=3,j=5,k;k=ib?(a=100):(b=100)ab?printf(%d,a):printf(%d,b)表达式2、表达式3的类型可以不同,此时条件表达式值取二者中较高的类型。如:xy?1:1.5 /若xy,则值为1.0;若xb)?a:b;printf(max=%fn,max);第19页/共42页条件运算符和条件表达式例:输入一个字符,判别它是否大写字母,如果是,将它转换成小写字母;如果不是,不转换。然后输出最后得到的字符。程序:#incl

12、ude void main()char ch;scanf(%c,&ch);ch=(ch=A&ch=Z)?(ch+32):ch;printf(%cn,ch);运行结果:输入:A 输出:a第20页/共42页应用运算符和表达式应注意运算符功能运算符与运算对象的关系要求运算对象的个数要求运算对象的类型运算符的优先级运算的结合方向 运算结果的类型混合运算中的类型转换条件运算符和条件表达式第21页/共42页3.5.9位运算符概念l 位运算是指位运算是指按二进制位进行的运算按二进制位进行的运算。因为在系统软件中,常要处理二进制位的问题。因为在系统软件中,常要处理二进制位的问题。l 例如:将一个存储单元中的各

13、例如:将一个存储单元中的各二进制位左移或右移一位二进制位左移或右移一位,两个数按位相加等两个数按位相加等。l 语言提供位运算的功能,与其他高级语言(如语言提供位运算的功能,与其他高级语言(如PASCALPASCAL)相比,具有很大的优越性)相比,具有很大的优越性。第22页/共42页位运算符语言提供的位运算符有:运算符 含义 运算符 含义 按位与按位与 取反取反|按位或按位或 右移右移(1)(1)位运算符中除以外,均为二目(元)运算符,位运算符中除以外,均为二目(元)运算符,即要求两侧各有一个运算量。即要求两侧各有一个运算量。(2)(2)运算量只能是运算量只能是整型或字符型整型或字符型的数据,的

14、数据,不能为实型不能为实型数据。数据。说明:第23页/共42页1 1、“按位与按位与”运算符()运算符()按位与是指:按位与是指:参加运算的两个数据,按二进制位进行参加运算的两个数据,按二进制位进行“与与”运算。如果运算。如果两个相应的二进两个相应的二进制位都为,则该位的结果值为制位都为,则该位的结果值为;否则为。即:;否则为。即:,例:例:并不等于,应该是按位与运算:并不等于,应该是按位与运算:注意:如果参加&运算的是负数(如-3&-5-3&-5),则要以补码形式表示为二进制数,然后再按位进行“与”运算。3&5的值得 00000011(3)&00000101(5)00000001(1)第24

15、页/共42页“按位与按位与”运算符运算符按位与运算有两个特点:按位与运算有两个特点:和二进制位数和二进制位数0 0相与相与则该位则该位被清零被清零;和二进制位数相与和二进制位数相与则则该位保留原值不变该位保留原值不变。利用这两个特点。利用这两个特点,可以指定一个数的某一位可以指定一个数的某一位(或某几位或某几位)置置0,0,也可以检验一个数的某一位也可以检验一个数的某一位(或某几位或某几位)是否是。是否是。例如:例如:a=a&3;a=a&3;只保留只保留a a的右端两位二进制位数的右端两位二进制位数。又如:若又如:若a&4 a&4 值为值为4 4,则,则变量变量a a的右端第的右端第3 3位为

16、位为。按位与运算符按位与运算符“&”和逻辑与运算符和逻辑与运算符“&”不同不同,对于逻辑与运算符,对于逻辑与运算符“&”,只,只要两边运算数为非要两边运算数为非0 0,运算结果为,运算结果为 1 1。例如。例如41&165 41&165 的值是的值是 1 1。第25页/共42页2 2、“按位或按位或”运算符(运算符(|)两个相应的二进制位中两个相应的二进制位中只要有一个为,该位的结果值为只要有一个为,该位的结果值为。即即|,|,|,|例:例:060|017,060|017,将八进制数将八进制数6060与八进制数与八进制数1717进行按位或运算。进行按位或运算。00110000|00001111

17、 00111111 第26页/共42页“按位或按位或”运算符运算符 0000 0000 0010 1001 (十进制数41)0000 0000 1010 0101 (十进制数165)0000 0000 1010 1101 (十进制数173)利用按位或运算的特点,可以指定一个数的某一位(或某几位)置1,其它位保留原值不变。例如:a=a|3;把a的右端两位二进制位数置1,其它位保留原值不变。a=a0 xff;把a的低字节全置1,高字节保持原样。a=a0 xff00;把a的高字节全置1,低字节保持原样。第27页/共42页3 3、“异或异或”运算符(运算符()异或运算符异或运算符也称也称XORXOR运

18、算符。它的规则是:运算符。它的规则是:若参加运算的两个二进制位若参加运算的两个二进制位同号则结果为(假)同号则结果为(假)异号则结果为(真)异号则结果为(真)即即:00=0:00=0,01=101=1,10=110=1,11=011=0例:即即:071052=023:071052=023(八进制数)(八进制数)00111001 00101010 00010011 第28页/共42页“异或异或”运算符运算符例如:int a=41165;则a的值为140,运算过程用二进制表示如下:0000 0000 0010 1001 (十进制数41)0000 0000 1010 0101 (十进制数165)00

19、00 0000 1000 1100 (十进制数140)按位异或运算可以把一个数的二进制位的某一位(或某几位)求反(0变1,1变0)。例如:a=a3;将变量 a 的最右端的二位求反。第29页/共42页4 4、“取反取反”运算符()运算符()是是一一个个单单目目(元元)运运算算符符,用用来来对对一一个个二二进进制制数数按按位位取取反反,即即将将变变,将将变变。例如,是对八进制数(即二进制数)按位求反。例如,是对八进制数(即二进制数)按位求反。00000000000101010000000000010101()11111111111010101111111111101010(八进制数177752)1

20、77752)第30页/共42页“取反取反”运算符运算符例如:int i=199;则:i值为-200,这是因为:十进199写成二进制:0000 0000 1100 0111把它按位取反 1111 1111 0011 1000,这个数是整型十进制数-200在内存的补码表示。1111111 0011 0111 000000011001000第31页/共42页5 5、左移运算符()、左移运算符()左移运算符是用来将一个数的左移运算符是用来将一个数的各二进制位全部左移若干位各二进制位全部左移若干位。例如:例如:a=2a=2 将的二进制数左移位,右补。将的二进制数左移位,右补。若,即二进制数,若,即二进制

21、数,左移位得,左移位得,(十进制数)十进制数)高位左移后溢出,舍弃。char a=5,b;b=a3;a的二进制值为 0000 0101,执行语句b=a)()右移运算符是右移运算符是a2a2表示将表示将a a的的各二进制位右移各二进制位右移2 2位位,移到移到右端的低位被舍弃右端的低位被舍弃,右移时右移时,对于正整数和无符号整数对于正整数和无符号整数,高高位位(左端左端)补补0;0;对于负数对于负数,高位高位(左端左端)补补1(1(补码表示法最补码表示法最高位高位1 1表示负数表示负数)。例如:char a=41,b;b=a3;用二进制来表示,a的值为 0010 1001(十进制数41)执行语句

22、b=a3;之后b 的值为 0000 0101(十进制数5=41/2/2/2,注意是整数除),运算后a的值并没有改变仍为41)。右移时,每右移1位,相当于除以 2(整数除)。第33页/共42页7.7.位运算赋值运算符位运算赋值运算符 它们是:=,=2相当于a=a2,b|=c 相当于b=b|c8.8.位运算优先关系位运算优先关系例如:语句 a=10&53;执行后a的值为8。“=y;运行后z的值为_。3若定义 int a=-5,b=-8,c=-12;则表达式 a=b|bc 的值为()。4int a,b;则表达式(a=2,b=5,a*2,+b,a+b)的值是_。5int m=5,n=3;则表达式(m+

23、1,n+1,(-m)+(n-)的值是_。第37页/共42页课 堂 练 习6若有定义:int a,b;double x,则以下不符合C语言语法的表达式是()。(A)x%(-3)(B)a+=-2 (C)a=b=2 (D)x=a+b7若有定义:int b=7;float a=2.5,c=4.7;则表达式a+(b/2*(int)(a+c)/2)%4 的值是()。(A)2.5 (B)3.5 (C)4.5 (D)5.588已定义 char c=A;则正确的赋值表达式是()。(A)c=028 (B)c=(c+)%4 (C)c+1=66 (D)c+=127-第38页/共42页课 堂 练 习9定义:int x=

24、4,y=2,z=0;则表达式(x-y=y)|(y=z)的值是()。(A)1 (B)0 (C)2 (D)410下面叙述正确的是()。(A)强制类型转换运算的优先级高于算术运算 (B)若a和b是整型变量,(a+b)+是合法的 (C)A*B 是不合法的 (D)A+B是合法的11若a为奇数时,表达式为真,a为偶数时,表达式假。则不能满足要求的表达式是()。(A)a%2=1 (B)!(a%2=0)(C)!(a%2)(D)a%2第39页/共42页课 堂 练 习12判定逻辑值为“真的最准确叙述是()。(A)1 (B)大于0的数 (C)非0的整数 (D)非0的数13下面叙述中,错误的是()。(A)算术运算对象不包含函数 (B)%(模运算符)的运算对象只能为整型量 (C)算术运算符的结合方向是自左至右第40页/共42页课 堂 练 习14已定义 double k=3.6;则正确的赋值表达式是()。(A)k=double(-3.6)(B)k%3 (C)k=k*(-1.0)=-3.6 (D)k+=k-=(k=1.2)*(k=3)15设已定义 float a=2.0,b=3.0;使a值为5.0的表达式是()。(A)a+=b (B)a*=b+2.0 (C)a/=b+2.0 (D)a-=b+2.0第41页/共42页感谢您的欣赏!第42页/共42页

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

当前位置:首页 > 应用文书 > PPT文档

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁