网站大量收购独家精品文档,联系QQ:2885784924

第2章数据类型运算符和表达式重点.ppt

  1. 1、本文档共105页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
位式运算的运算规则 位式与:对ab,仅当a、b的对应位均 为 1 ,结果该位为 1,否则该位为0。 举例:350001=1 位式或:对a|b, 只要a、b的对应位有一个为 1 ,结果该位为 1,否则该位为0。 举例:3|5=0011|0101=0111=7 位式异或:对a^b, 仅当a、b的对应位相反时 ,结果该位为 1,否则该位为0。 举例:3^5=0011^0101=0110=6 ~ 位式取反:对应操作数每位上的0, 结果该位为 1,否则该位为0。 举例:~5=~0000 0101=1111 1010 位式运算的运算规则 左移位:对an, 将操作数a左移n位,高位左移后溢出,舍弃不起作用,低位填0补位。 举例:152=000011112 位式运算的运算规则 右移位:对an, 将操作数a右移n位,对有符号数来说,左边空位填符号位的值,称算术移位;对无符号数,左边空位填0,称逻辑移位。 举例:52=000001012 -52=111110112 位式运算的运算规则 优先级 按~、移位、、^、| 顺序优先级递减。 说明 1.关系运算和逻辑运算的结果非0即1, 而位式运算结果可为任意二进制数。 2. C语言是一门“中级语言”,使用位运算可以对字节或字内的二进制位进行操作,常用于编写系统软件。如在设备驱动程序的设计中,屏蔽某些特殊位。 位操作运算符 现场演示——逻辑运算与位运算的不同 main() { int x=12, y=8; printf(\n%5d%5d%5d, !x, x||y, xy); printf(\n%5d%5d%5d, ~x, x|y, xy); printf(\n%5u%5d%5d\n, ~x, x|y, xy); } 0 1 1 -13 12 8 65532 12 8 逻辑非的结果 不是按位取反 正数的补码 与其原码相同, 负数的补码为 其反码加1 逗号运算符 逗号运算符 , exp1, exp2 逗号运算符的优先级最低,“自左向右”结合 逗号表达式的值是exp2的值 exp1和exp2都可以又是“逗号表达式” 一般形式 表达式1, 表达式2, ……, 表达式n 把多个表达式组合成一个表达式使用 举例 x=(a=3, 6*a) /* a=3, x=18 */ x=a=3, 6*a /* a=3, x=3 */ 逗号运算符——例 举例 x=(a=3, 6*a) /* a=3, x=18 */ x=(a=3, 6*3) /* x=18 */ x=a=3, 6*a /* a=3, x=3 */ a=3*5,a*4,a+5 /* a=20 */ 逗号运算符和逗号表达式 在许多情况下,使用逗号表达式的目的只是想分别得到各个表达式的值,而并非一定需要得到和使用整个逗号表达式的值。 主要用在循环语句中,同时对多个变量赋初值等 for (i = 1 , j = 00; i j; i++, j--) 循环起始条件 循环结束条件 循环增量 逗号运算符和逗号表达式 注意∶并不是任何地方出现的逗号都是逗号运算符. printf(“%d,%d,%d”a,b,c); int a=3; printf(“result=%d\n”,a*4,a+5); printf(“result=%d\n”,(a*4,a+5)); 逗号仅用作分隔符 条件表达式 把a和b中的最大值放入z中 此种表达式切忌用得过于繁杂 if (a b) z = a; else z = b; z = (a b) ? a : b; 优先级 ( ) [ ] - . ! ~ ++ -- + - * (类型) sizeof * / % + - = = == != ^ | || ? : = += -= *= /= %= = ^= |= = = , 结合性 多数运算符为左结合 少数为右结合: 一元运算符 赋值运算符 条件运算符 这一章我们学到了 变量的命名规则 数据类型 char,short,int,long,float,double,long double signed,unsigned enum 常数、转义字符 运算符 算术运算符、关系运算符、逻辑运算符、增一/减一运算符、位运算符、赋值运算符、类型强转运算符、逗号运算符、条件运算符(? :)、 sizeof 类型转换 优先级和结合性 作业 P43习题2.3

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档