- 1、本文档共75页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C程序设计导引I.ppt
4、运算符与表达式 ——逻辑表达式 使用逻辑运算符和括号将操作数(通常是关系表达式)连接起来的表达式称为逻辑表达式: (逻辑与):当2个操作数都为非0或真时,结果为1(真),否则结果为0(假),如:(x1) (x=20) || (逻辑或):当2个操作数有一个为非0或真时,结果为1(真),否则结果为0(假),如:(x =1) || (x20) ! (逻辑非):将一个非0或为真的操作数变为0,或将0或为假的操作数变为1,如:!(xy) 逻辑运算和||连接的表达式是自左向右求值的,一旦知道结果的真、假值,求值马上停止: (a+1c)(b+11),若(a+1c)为0,则表达式的值为0 (a+1c)||(b+11) ,若(a+1c)为1,则表达式的值为1 4、运算符与表达式 ——位运算表达式 使用位运算符和括号将操作数连接起来的表达式称为位运算表达式: (按位与),| (按位或),^ (按位异或),! (按位非):二进制位逻辑运算 (左位移):将左侧操作数的二进制数值向左移动若干位(由右侧的操作数给出),移出去的位丢弃,空出的位用0填补。 (右位移),将左侧操作数的二进制数值向右移动若干位(由右侧的操作数给出),移出去的位丢弃,空出的位用符号位(对有符号数)或0(对无符号数)来填补。 4、运算符与表达式 ——位运算表达式 位运算符的操作数必须是整型数据。在C中,整型数据分有符号整数和无符号整数,是用一定长度的二进制位来表示。以32位整数为例来说明位移动运算: 有符号数:有符号整数做位移运算时,符号位是不参与移动的。左移时,空出的位用0填补;右移时,空出的位用符号位填补。(机器内数据的补码表示) 无符号数:没有符号位,不管左移或右移,空出的位用0填补。 位移运算的实质(在不发生溢出时): 左移:xn,相当于 x* 2n 右移:xn,相当于 x/2n 1 1 1 1 1 … x x 1 1 1 1 0 …1 1 0 1 0 1 1 0 1 … 1 0 1 0 0 0 1 1 … x x 1 右移2位 4、运算符与表达式 ——赋值表达式 “=”是C语言中基本的赋值运算符,基本的赋值表达式形式为:“变量 = 表达式”,它将表达式的值赋给变量。 如: x = y+1, a=b=c=1 C语言中除了基本的赋值运算符外,还有一系列复合赋值运算符: +=,―=,*=,/=,%=,=,=,=,^=,|=,它们是由2个运算符组成,相应的赋值表达式形式为: “变量 op= 表达式”,它等价于基本赋值表达式: “变量 = 变量 op (表达式)”,如: x *= 2 等价于 x = x*2 x += y*2 等价于 x = x + (y*2) 4、运算符与表达式 ——条件表达式 C语言中的条件运算符“? : ”可以构成条件表达式,其形式为:“表达式1 ? 表达式2 : 表达式3” 该表达式的求值过程为:先求表达式1的值,若它不等于0(为真),则 求表达式2的值,此时,该值就是整个条件表达式的值;若表达式1的值等于0,则 求表达式3的值,并作为整个条件表达式的值。即表达式2和表达式3之中,只有一个表达式被求值。如 将x和y中最大的值赋给z,可以写成: z = (xy)? x : y 运算符的优先次序:一个复杂的表达式值,往往要涉及不同的运算符,在表达式求值时,其计算次序是要符合一定的规则的,即不同运算符的先后次序是不同的。(不用死记,复杂表达式中多用“( )”运算符) 1) . , - , [] , () 9) ^ 2) ++ , -- , ! , ~ , -, (DataType) , sizeof 10) | 3) * , / , % 11) 4) + , - 12) || 5) , 13) ?: 6) , , = , = 14) = , += , -= , *= , /= , 7) == , != %= , ^= , = , |= 8) = , = , 4、运算符与表达式 ——运算符的优先次序 4、运算符与表达式 ——表达式计算中的数据类型转换 在表达式中,整型、实型、字符型数据可以混合运算。运算中,不同类型的数据需要先强制转化为同一类型(利用强制类型转换运算符),然后进行运算。但是,在把容量大的类型转换为容量小的类型时必须注意: 转换过程中
文档评论(0)