引言
表示运算的符号称为运算符。
- 算数运算
- 比较运算
- 逻辑运算
- 位运算
1.算术运算
- 算数运算包括加、减、乘、除、乘方、指数、对数、三角函数、求余数等,这些都是算数运算。
- C++中,+,-,*,/,%分别表示加、减、乘、除和求余运算。
- 若a,b都是整数,则a%b表示a除以b的余数,如:
int a=26;//声明整型变量a并初始化为26
int b=10;//整型变量b并赋初值10
cout<<a%b<<endl;
得到的结果就是6
注意: ☛运算符作用的对象称为操作数,%运算的两个操作数,必须都是整数。
注意事项:
- 乘法运算符不能省略,例如
★数学中写b²-4ac,程序中应写为bb-4.0a*c - 除数是表达式时注意加括号,例如
★数学中x/2a应写为x/2.0/a 或 x/(2.0*a)
其他算数运算的实现
- c++中没有乘方运算符,也没有指数、对数、三角函数的运算符,它们是通过函数的调用实现的。如:
pow(x,n) x^n
exp(x) e^x
log(x) x的自然对数的对数
log10(x) x的常用对数
sin(x) x的正弦
cos(x)
tan(x) - 他们都属于数学函数,使用时需要在程序的开头写
#include<cmath>
例如:
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
double x;
cin>>x;
cout<<"sin(x)="<<sin(x)<<endl;
cout<<"cos(x)="<<cos(x)<<endl;
cout<<"tan(x)="<<tan(x)<<endl;
return 0;
}
2.自增自减运算符
-
i=i+1
-
i=i-1
-
自增运算符++
-
自减运算符–
-
i++, i–,++i.–i
前置++:++i, 前置–:--i
后置++:i++, 后置–:i– -
双目运算(二元运算):运算符需要两个操作数
-
单目运算 (一元运算):运算符需要一个操作数
作用
-
无论前置、后置,++使变量自身加1,–使变量自身减1。
int n=5,m=10;
n++;//相当于n=n+1;
m–;//相当于m=m-1;
cout<<n<<endl;//结果为6
cout<<m<<endl;//结果为9 -
作为表达式时,前置运算符的结果是加1或减1之后的结果;后置运算符的结果是加1或减1之前的结果
建议
- 使用单独的表达式语句
- 尽量不将其放入表达式中
3.算数运算符的优先级
- 先乘除求余,后加减,级别相同的从左向右依次计算
- 括号可以改变优先级
- 圆括号可以嵌套,越靠里,圆括号的优先级越高。
- %和*,/ 优先级别相同
- 后置++、–的优先级>前置++、–的优先级>>乘除的优先级
4.运算的数据类型
- 相同类型的数据进行 算数运算,结果还是这种数据类型
- 不同类型的数据运算,默认向级别高的类型转换
short(低)→char→int→unsigned→long→double(高) - 强制类型转换
(<类型>)x或<类型>(x)
将x转换为<类型>数据
✦x可以是表达式
(double)a/b
int(3.0/2.0)
double(1/2)
5.复合运算符
-
为简化书写,C++提供混合算数运算符
+=,-=,*=,/=,%= -
双目运算
a+=b; 等价于 a=a+b;
a-=b ; a=a-b;
a*=b ; a=a*b;
a/=b; a=a/b;
a%=b ; a=a%b;
**注意:**☛ 1/2 结果为0
1.0/2 结果为0.5
int a=7,b=3;
double c;
若想得到a除b的实数结果 c=(double)a/b;