C语言关系运算符和位运算符ppt课件.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《C语言关系运算符和位运算符ppt课件.ppt》由会员分享,可在线阅读,更多相关《C语言关系运算符和位运算符ppt课件.ppt(59页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C C语言关系运算符和位运算符语言关系运算符和位运算符2本节主要内容介绍本节主要内容介绍u 3.5.5 关系运算符和关系表达式关系运算符和关系表达式u 3.5.6 逻辑运算符和逻辑表达式逻辑运算符和逻辑表达式u 3.5.7 条件运算符和条件表达式条件运算符和条件表达式u 3.5.9 位运算符位运算符u 3.5.10 求字节运算符求字节运算符3452.2.关系表达式关系表达式用关系运算符将两个表达式(可以是算术表达式或用关系运算符将两个表达式(可以是算术表达式或 关系表达式,逻辑表达式,赋值表达式,字符表达式)关系表达式,逻辑表达式,赋值表达式,字符表达式)接起来的式子,称关系表达式接起来的式子
2、,称关系表达式例:例: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代表假代表假关系运算符和关系表达式关系运算符和关系表达式6关系运算符和关系表达式关系运算符和关系表达式例例 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 a=3,b=2,c=1,d,f;int a=3,b=2,c=1,d,f
3、;ab ab (ab)=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)避免类似错误:避免类似错误:n如:要表示如:要表示xa,b,不可写为不可写为:a=x=a)&(x=b)应避免对实数作相等或不等的判断。应避免对实数作相等或不等的判断。n如:如:1.0/3.0*3.0=1.0 结果为结果为 0.可改写为:可改写为:fabs(1.0
4、/3.0*3.0-1.0)3 看成看成“真真”&“真真”值为值为1l注意:注意:数学上关系式数学上关系式 0 x 100 要写成:要写成:0=x&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)建议:建议:建议:建议:使用使用使用使用()()能使关系更清晰!能使关系更清晰!能使关系更清晰!能使关系更清晰!112.2.逻辑表达式逻辑表达式用逻辑运算符将关系表达式或逻辑量连接起来的式子就用逻辑运算符将关系表达式或逻辑量连接起来的式子就 是逻辑表达
5、式。是逻辑表达式。逻辑表达式的值应该是一个逻辑量逻辑表达式的值应该是一个逻辑量“真真”或或“假假”。例:例:设设a=4a=4,b=5b=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任何非零的数值被认作任何非零的数值被认作“真真”逻辑运算符和逻辑表达式逻辑运算符和逻辑表达式12例:例:53&83&84-!0 自左向右运算自左向右运算 1&0逻辑值为逻辑值为083逻辑值为逻辑值为1表达式值为表达式值为0逻辑运算符和逻辑表达式逻辑运算符和逻辑表达式13在逻辑表达式的求解中,在逻辑
6、表达式的求解中,并不是所有的逻辑运算符都要被执行并不是所有的逻辑运算符都要被执行。(1)a&b&c (1)a&b&c 只有只有a a为真时,才需要判断为真时,才需要判断b b的值的值,只有,只有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的原值为的原值
7、为1 1时,由于时,由于“ab”“ab”的值的值为为0 0,因此,因此m=0m=0,而,而“n=cd”“n=cd”不被执行,因此不被执行,因此n n的值不是的值不是0 0而而仍保持原值仍保持原值1 1。逻辑运算符和逻辑表达式逻辑运算符和逻辑表达式14逻辑运算符和逻辑表达式逻辑运算符和逻辑表达式例例例例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+;
8、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=115逻辑运算符和逻辑表达式逻辑运算符和逻辑表达式逻辑运算符的应用:逻辑运算符的应用:(1)表示成绩(表示成绩(grade)在在90以上以上(含含)和和60分以下的情况:分以下的情况:grade=90|grade0&(x%2=0)(3)判断闰年的条件是符合下列两种之一判断闰年的条件是符合下列两种之一:能被能被4整除整除,但不能被但不能被100整除整除;能被能被400整除整除 (year%4=0&year%100!=0)|
9、(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 C)3 D)44、已有定义语句:、已有定义语句:int m=0,n=3;执行表达式执行表达式(m=53)|(n=7=100)&(s300)(B)100=s=100)&
10、(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)183.5.7条件运算符和条件表达式条件运算符和条件表达式 C语言提供了一个简单的条件赋值语句或条件表达式。语言提供了一个简单的条件赋值语句或条件表达式。l一般形式一般形式 表达式表达式1?表达式表达式2:表达式表达式3l功能功能:先判表达式先判表达式1,若非
11、若非0,则值为表达式则值为表达式2的值的值,否则为表否则为表达式达式3的值的值。n条件运算符的优先级条件运算符的优先级高于赋值运算符高于赋值运算符,但,但低于关系运算符低于关系运算符和逻辑运算符。例如:和逻辑运算符。例如: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)n表达式表达式2、表达式、表达式3的类型可以不同,此时条件表达式的类型可以不同,此时条件表达式值取二者值取二者中较高的类型。中较高的类型。如:如:xy?1:1.5 /若若xy,则则值为值为1.0;若若xb)?
12、a:b;printf(max=%fn,max);21条件运算符和条件表达式条件运算符和条件表达式例:输入一个字符,判别它是否大写字母,如果是,将它转换例:输入一个字符,判别它是否大写字母,如果是,将它转换成小写字母;如果不是,不转换。然后输出最后得到的字符。成小写字母;如果不是,不转换。然后输出最后得到的字符。程序程序:#include void main()char ch;scanf(%c,&ch);ch=(ch=A&ch=Z)?(ch+32):ch;printf(%cn,ch);运行结果:运行结果:输入:输入:A 输出:输出:a22n应用运算符和表达式应注意应用运算符和表达式应注意运算符功
13、能运算符功能运算符与运算对象的关系运算符与运算对象的关系n要求运算对象的个数要求运算对象的个数n要求运算对象的类型要求运算对象的类型运算符的运算符的优先级优先级运算的运算的结合方向结合方向 运算结果的类型运算结果的类型混合运算中的类型转换混合运算中的类型转换条件运算符和条件表达式条件运算符和条件表达式233.5.9位运算符位运算符概念概念l 位位运运算算是是指指按按二二进进制制位位进进行行的的运运算算。因因为为在在系系统统软件中,常要处理二进制位的问题。软件中,常要处理二进制位的问题。l 例例如如:将将一一个个存存储储单单元元中中的的各各二二进进制制位位左左移移或或右右移一位移一位,两个数按位
14、相加等两个数按位相加等。l 语语言言提提供供位位运运算算的的功功能能,与与其其他他高高级级语语言言(如如PASCALPASCAL)相比,具有很大的优越性)相比,具有很大的优越性。24位运算符位运算符语言提供的位运算符有:语言提供的位运算符有:运算符运算符 含义含义 运算符运算符 含义含义 按位与按位与 取反取反|按位或按位或 右移右移(1)(1)位运算符中除以外,均为二目(元)运算符,位运算符中除以外,均为二目(元)运算符,即要求两侧各有一个运算量。即要求两侧各有一个运算量。(2)(2)运算量只能是运算量只能是整型或字符型整型或字符型的数据,的数据,不能为实型不能为实型数据。数据。说明:251
15、 1、“按位与按位与”运算符()运算符()按位与是指:按位与是指:参加运算的两个数据,按二进制位进行参加运算的两个数据,按二进制位进行“与与”运算。如果运算。如果两个相应的二进制位都为,则该两个相应的二进制位都为,则该位的结果值为位的结果值为;否则为。即:;否则为。即:,例:例:并不等于,应该是按位与运算:并不等于,应该是按位与运算:注意:注意:如果参加如果参加&运算的是运算的是负数(如负数(如-3&-5-3&-5),则要以),则要以补码形式表示为二进制数,补码形式表示为二进制数,然后再按位进行然后再按位进行“与与”运运算。算。3&5的值得 00000011(3)&00000101(5)000
16、00001(1)26“按位与按位与”运算符运算符n按位与运算有两个特点:按位与运算有两个特点:和二进制位数和二进制位数0 0相与相与则该则该位位被清零被清零;和二进制位数相与和二进制位数相与则则该位保留原值不该位保留原值不变变。利用这两个特点。利用这两个特点,可以指定一个数的某一位可以指定一个数的某一位(或某几位或某几位)置置0,0,也可以检验一个数的某一位也可以检验一个数的某一位(或某或某几位几位)是否是。是否是。n例如:例如:a=a&3;a=a&3;只保留只保留a a的右端两位二进制位数的右端两位二进制位数。n又如:若又如:若a&4 a&4 值为值为4 4,则,则变量变量a a的右端第的右
17、端第3 3位为位为。n按位与运算符按位与运算符“&”“&”和逻辑与运算符和逻辑与运算符“&”“&”不同不同,对于逻辑与运算符对于逻辑与运算符“&”“&”,只要两边运算数为非,只要两边运算数为非0 0,运算结果为,运算结果为 1 1。例如。例如41&165 41&165 的值是的值是 1 1。272 2、“按位或按位或”运算符(运算符(|)两个相应的二进制位中两个相应的二进制位中只要有一个为,该位的结只要有一个为,该位的结果值为果值为。即即|,|,|,|例:例:060|017,060|017,将八进制数将八进制数6060与八进制数与八进制数1717进行按位进行按位或运算。或运算。00110000
18、|00001111 00111111 28“按位或按位或”运算符运算符 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,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 关系 运算 ppt 课件
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内