一.算术运算符
算术运算符:+ - * / % ++ --
注意事项:①%只能是整数之间做运算
②整数相除,会取整,学习过程中
float a =5/2
printf("%.2f",a);
float a=5;
printf("%.2f",a/2);
前者是2.00,后者是2.50,这是因为前者是把两个整型的相除赋值给了a,欲实现下面的结果,可以使用强制类型转换float a=(float)5/2或者float a=5/2.0
③i++与++i与i,
int i=6;
printf(“%d”,i++);
printf(“%d”,++i);
printf(“%d”,i);
i++,i在前,则i完成自加,但i++整体不变,++i,i在后,i完成自加,++i整体也加了1
二.逻辑运算符
逻辑运算符:&&, ||,!,只有零和非零
注意事项:
逻辑或运算:当前边的表达式结果为真,后边表达式不再执行,直接返回真。
三.位运算符
位运算符运算在二进制上,补码上的运算,想到了数电的逻辑运算,与&,或|,非~,异或^,分别对应全1为1,有1为1,取反,相异为1。<<左移,左移几就乘2的几次方,>>右移,右移几就除2的几次方,不够消掉
取反运算找相反数,+5取反后变成-6的过程
5(原码=补码):0000 0000 0000 0000 0000 0000 0000 0101
取反 :1111 1111 1111 1111 1111 1111 1111 1010(补码)
补码-1即反:1111 1111 1111 1111 1111 1111 1111 1001 (反码)
原码 : 1000 0000 0000 0000 0000 0000 0000 0110 (-6)
四.关系运算符
> >= < <= == !=
五.赋值运算符
= += -= *= /= %=
赋值=;等于==
六.条件运算符
也是三目运算符,格式为:
表达式1?表达式2:表达式3;
先判断表达式1是否成立,如果成立则执行表达式2,不成立则执行表达式3;
七.运算符优先级
计算简易口诀:单算移关与,异或逻条赋
单目运算符 ! ++ -- ~
算术运算符 * / % + -
移位运算符 << >>
关系运算符 < <= > >= == !=
位与运算符 &
异或运算符 ^ |
逻辑运算符 && ||
条件运算符 ? :
赋值运算符 = += -= *= /= %=
int i=10;j=10;k=3;
k*=i+j
k=60
char a=3,b=6,c;
c=a^b<<2
c=11011