2.3运算符
2.3.1运算符介绍
运算符:具有一定运算规则的符号。
操作数:运算符的操作对象。
~a --- a 就是~运算符的操作数。 --- 单目运算符: 运算符只有一个操作数
3 + 5 --- 3 5就是+运算符的操作数。--- 双目运算符: 运算符有2个操作数
表达式1 ? 表达式2 : 表达式3 --- 表达式1 表达式2 表达式3 就是 ?:运算符的操作数。 --- 三目运算符: 运算符有3个操作数
优先级:() 单目 双目 三目 赋值复合
表达式:可以是常量 变量 操作数和运算符的组合
注:表达式一定有结果 。
2.3.2运算符分类:
赋值运算符 =
算术运算符: + - * /(除)? %(取余 取模)
系运算符: > < >= <= ==(等于) !=(不等于)
逻辑运算符: && || !
其他运算符: ++ -- : += -= ,
位运算符:& | ^ ~ << >>
2.4赋值运算符 =
原则:赋值符号的两边类型要一致。
如果不一致,会以左侧为准,尝试将右侧的值转换为左侧的类型,如果类型转换不了报警告或者报错。 (如果两边类型不一致,赋值的时候又不想报错,报警告,就用 强制类型转换)。
强制类型转换: (转换的数据类型)值
2.5算术运算符:
例: + - * / %
2.5.1除以:/
规则: 如果两边都是整型结果是整型,如果有小数那结果就是小数。
2.5.2取余 取模:%
规则:两边必须都要是整型
m % n 它的结果可能是 0 ~ n-1 中的某一个数。
如果 m % n == 0 情况下,m就是n的倍数 n是m的因数 m能被n整除
如果 m % n != 0 情况下,m不是n的倍数 n不是m的因数 m不能被n整除
2.5.3使用场景:
场景1:偶数 奇数 判断
场景2: / % 结合 做数据分离
数据分离 :对应位上的数字 = 数据 / 对应位的权重 % 进制数。
数据分离思想解决问题
现在距离国庆节还有126 4217 0860毫秒,那么是几天几小时几分几秒呢?
1s=1000ms,1分=60s,1时=3600s,1天=86400s#include<stdio.h> int main() { long int x=12642170860; int y=x/1000; printf("是%d天%d小时%d分%d秒",y/86400,y%86400/3600,y%86400%3600/60,y%86400%3600%60); return 0; }
2.6关系运算符
> < <= >= !=
关系运算符的运算结果:
关系成立——真,关系不成立——假。
例:3>5不成立——假
0=='0'——假
0=='\0'——真
练习:输入一个成绩,判断该成绩是否合格
#include<stdio.h> int main() { float grade; scanf("%f",&grade); if(grade>=60)printf("及格"); printf("不及格"); return 0; }
2.7逻辑运算符
&& || !
2.7.1逻辑与:&&
格式:表达式1&&表达式2。
规则:“全真则真,有假则假”。
结果:真,假
表达式1 | 表达式2 | 表达式1&&表达式2 |
真 | 真 | 真 |
真 | 假 | 假 |
假 | 不用看也不用执行 | 假 |
举例说明
#include<stdio.h> int main() { int a=1,b=2; int c; c=(a==2)&&(b=3); printf("%d,%d",b,c); return 0; } //输出2,0
此题中的表达式a==2结果为假,故b=3不执行。返回b的值3,c的值0;
应用场景:并且、同时。
练习:如果这个数据是3的倍数同时格式数字是7则输出yes,否则输出no。
#include<stdio.h> int main() { int n; scanf("%d",&n); if(n%3==0&&n%10==7) printf("yes"); else printf("no"); return 0; }
输入27,输出yes,输入6,输出no。
2.7.2逻辑或:||
格式:表达式1||表达式2。
规则:有真则真,全假为假。
表达式1 | 表达式2 | 表达式1&&表达式2 |
假 | 假 | 假 |
假 | 真 | 真 |
真 | 不用看也不用执行 | 真 |
场景:或者,不在某一个范围内
2.7.3逻辑非:!
格式:!表达式
规则:"真变假,假变真"
表达式 | !表达式 |
真 | 假 |
假 | 真 |
场景:判断表达式为假的时候,!表达式等价于表达式==0。
标签:操作数,int,C语言,运算符,&&,printf,day04,表达式 From: https://blog.csdn.net/m0_56934903/article/details/143386064练习:!E等价于什么?C
A、E==1
B、E!=1
C、E==0
D、E!=0