- 4
- 0
- 约6.89千字
- 约 31页
- 2016-11-27 发布于河南
- 举报
第五章 操作符和表达式
第五章 操作符和表达式 1.操作符 2.布尔值 3.左值和右值 4.表达式求值 算术操作符 + - * / % + - * / 既适用于浮点类型又适用于整型操作数 %取余数只适用于整型操作数 / 两个操作数都是整数进行整除运算,其他情况进行浮点数除法 截尾:整数除法舍弃结果的小数点部分 printf(integer division:5/4 is%d\n,5/4); printf(integer division:6/3 is%d\n,6/3); printf(integer division:7/4 is%d\n,7/4); printf(floating division:7./4. is%1.2f\n,7./4.); printf(mixed division:7./4 is%1.2f\n,7./4); 1.2f printf(floating division:1./3. is%50.3f\n,1./3.); printf(%d,7%4); printf(%d,-7%4); printf(%d,7%-4); printf(%d,7.3%2.2); 移位操作符 左移位 将其左侧操作数的值的每位向左移动,右侧空位用0补齐 移动的位数由右侧操作数决定 左右操作数均是整型 右移位 1 unsigned 将其左侧操作数的值的每位向右移动,左侧空位用0补齐 移动的位数由右侧操作数决定 2 signed 结果依赖于编译器,空出的位可能用0填充或者用符号位填充 如: int a=1; printf(%d\n,a3 ); int a=-10; printf(%0x\n,a ); printf(%0x\n,a3 ); 0000 1010 1111 0101 -10 1111 0110 1111 1110 位操作符 位操作符要求操作数为整型,对操作数的对应位进行指定操作,每次对左右操作数的各一位进行操作 (AND) 两个位都是1 结果是1 否则结果是0 | (OR) 两个位都是0 结果是0 否则结果是1 ^ (XOR) 两个位不同结果是1 ,两个位相同结果是0 如: int a=10,b=9; printf(%d\n%d\n%d\n,ab,a|b,a^b ); 位操作符的用法: 1.掩码:与掩码一起使用 掩码:是某些位设为开(1)而某些位设为关(0)的位组合。 如设符号常量MASK为2 flags=flags MASK; MASK flags 一个掩码 宽度为8位 掩码中的0覆盖了flags中相应的位,过程就是使用掩码 flags中的位只有在MASK中的对应位是1的时候才可见 简化为 flags=MASK; 2.位打开: 用于打开一个值中特定的位,其它位不变。 MASK 第一位是1 flags中的第一位 是1 其他位不变 flags|=MASK; MASK | flags 根据MASK中打开的位将flags中的对应位设为1,其他的位不变 3.关闭位 假设关闭flags中的位1,此时MASK中仍然只有位1是打开的。 flags=flags~MASK; flags=~MASK; MASK为0000 0001 ~MASK为1111 1110 由于 X 1仍为 X ~MASK 1111 1110 flags 1011 0111 1011 0110 4.转置位: 转置一个位表示: 如果这个位打开,就把他关闭;如果这个位关闭,就把他打开。 方法:位异或 flag^=MASK; ^ (XOR) 两个位不同结果是1 ,两个位相同结果是0 b 1 1^b=0 0^b=1 0 1^b=1 0^b=0 即: 0^b=b 用^将一个值和掩码组合,该值中对应掩码为一的位被转置 5.查看一位的值: 如:查看flag的位1是否为1 要查看一位的值 首先要屏蔽其他位,如设符号常量MASK为1 只把 if((flag MASK)==MASK) MASK 0000 0001 flag 1011 0110
您可能关注的文档
最近下载
- 辽宁省沈阳市辽宁省实验中学2025-2026学年高一上学期12月月考语文试题.docx VIP
- 药事法律法规试题及答案.docx VIP
- 辽宁省沈阳市辽宁省实验中学2025-2026学年高一上学期期末语文试题(含答案).docx VIP
- 麻醉中级考试精选题库及答案解析.docx
- 货款结算合同范本及法律解读.docx VIP
- 威海芜船船舶制造有限公司X射线探伤机移动探伤项目报告表.pdf VIP
- 2026年高考第一次模拟考试:生物一模保分卷(课标全国通用)(考试版).docx VIP
- 新中国的医疗卫生发展.pptx VIP
- 2025年甘肃卷历史高考试卷(原卷+答案).pdf VIP
- (二诊)绵阳市高中2023级(2026届)高三第二次诊断性考试化学试卷A卷+B卷(含答案).pdf
原创力文档

文档评论(0)