(三十九)运算符

简介:

c++的运算,具体是2个操作数,加一个运算符。例如3+4,3和4是操作数,+是运算符。

加法运算:+  如1+2,结果是3

减法运算:-  如3-1,结果是2

乘法运算:*  如3*4,结果是12

除法运算:/  如4/2,结果是2。若前后2个数都为整数,则取结果的整数部分(不四舍五入)。

求模运算:%  如7%4,结果是3。

 

 

求模的意思是,求第一个数除以第二个数之后的余数。例如7/4=1余3,所以结果是3,而5/2的结果是2余1,所以5%2输出为1。

另外,求模的两个操作数都必须是整型(即整数,但不一定为正),如果是浮点数(即小数,则会报错)。

求模比如是a%b,若其中有一个为负数,则a%b=a-(a/b)*b

即,若a正b负,则a%b为正,若a负b正,则a%b为负。即a%b的正负跟a相关。大小为a%b(假设a、b都为正数时的余数),然后前面加上a的正负符号。

例如  -9%4=-1  ;而  9%-4=1。

 

关于除法:

假如a/b其中a或者b中至少有一个浮点数(即小数),那么a/b则保留小数,结果为浮点数。如果没有浮点数,则结果为整数(舍去小数部分)。例如7/6的结果是1,而不是四舍五入后的2。

注意:7/6的结果是1,但是7.0/5的结果却是1.16667(共6位)

 

关于计算时的优先级:

类似数学算式,先乘除后加减,例如2*3+3的结果是6+3=9,而非2*6=12。

但是如果同时牵扯到乘除或者求模(求余数),最好加上括号,以防出错。例如:3/6*4这种事情应该尽量避免,应写成(3/6)*4。

至于具体的,有C++的运算符优先级的说明,以及 综合性方面的信息。总之,为了避免麻烦,还是尽量加扩哈以免出错吧。

 

上代码:


//运算符演示
#include <iostream>

int main()
{
	using namespace std;
	int a = 5, b = 3, d = -3, e = -5;
	double c = 3.0;
	cout << "已知a=5,b=3,c=3.0,d=-3,e=-5,现就各个运算符进行演示" << endl;
	cout << "a+b= " << a + b << endl;
	cout << "a-b= " << a - b << endl;
	cout << "a*b= " << a*b << endl;
	cout << "a/b= " << a / b << "   ←左边是整型的除法" << endl;
	cout << "a/c= " << a / c << "   ←左边是包含一个浮点数的除法,注意,结果也是浮点数" << endl;
	cout << "a%b= " << a%b << "   ←左边是5%3的求模" << endl;
	cout << "a%d= " << a%d << "   ←左边是5%-3的求模" << endl;
	cout << "e%b= " << e%b << "   ←左边是-5%3的求模" << endl;
	cout << endl;
	cout.setf(ios_base::fixed, ios_base::floatfield);	//貌似是强制显示小数点后6位,可以用于确认精确度
	cout << "以下是不同的除法,注意,f结尾的为float类型浮点数,L结尾为long类型浮点数,只有小数点的为double类型浮点数,而无小数点的为int类型的整型\n";
	cout << "8/3= " << 8 / 3 << "   ←为整型之间的除法" << endl;
	cout << "8.0/3.0*1e6= " << 8.0 / 3.0*1e6 << "   ←为double类型的除法" << endl;
	cout << "8.0f/3.0f*1e6= " << 8.0f / 3.0f*1e6 << "   ←为float类型的除法" << endl;
	cout << "8.0L/3.0L*1e6= " << 8.0L / 3.0L*1e6 << "   ←为long double类型的除法" << endl;
	system("pause");
	return 0;
}

输出内容为:

已知a=5,b=3,c=3.0,d=-3,e=-5,现就各个运算符进行演示
a+b= 8
a-b= 2
a*b= 15
a/b= 1   ←左边是整型的除法
a/c= 1.66667   ←左边是包含一个浮点数的除法,注意,结果也是浮点数
a%b= 2   ←左边是5%3的求模
a%d= 2   ←左边是5%-3的求模
e%b= -2   ←左边是-5%3的求模

以下是不同的除法,注意,f结尾的为float类型浮点数,L结尾为long类型浮点数,只有小
数点的为double类型浮点数,而无小数点的为int类型的整型
8/3= 2   ←为整型之间的除法
8.0/3.0*1e6= 2666666.666667   ←为double类型的除法
8.0f/3.0f*1e6= 2666666.746140   ←为float类型的除法
8.0L/3.0L*1e6= 2666666.666667   ←为long double类型的除法
请按任意键继续. . .


目录
相关文章
|
6月前
|
Java
探索Java世界的奇妙工具——运算符与表达式运算符
探索Java世界的奇妙工具——运算符与表达式运算符
29 0
|
5月前
|
编译器 C语言
C语言学习记录——操作符详解知识点选记(算术操作符、单目操作符、移位操作符、关系操作符、逻辑操作符、条件操作符......)二
C语言学习记录——操作符详解知识点选记(算术操作符、单目操作符、移位操作符、关系操作符、逻辑操作符、条件操作符......)二
47 3
|
5月前
|
存储 编译器 C语言
C语言学习记录——操作符详解知识点选记(算术操作符、单目操作符、移位操作符、关系操作符、逻辑操作符、条件操作符......)一
C语言学习记录——操作符详解知识点选记(算术操作符、单目操作符、移位操作符、关系操作符、逻辑操作符、条件操作符......)一
38 1
|
6月前
|
Java
Java程序设计基础—表达式及运算符的优先级
Java程序设计基础—表达式及运算符的优先级
|
6月前
|
算法
运算符的妙用以及部分机理解析
运算符的妙用以及部分机理解析
64 0
|
C语言 索引
C语言基础知识:操作符详解(附操作符优先级及结合性一览表)(下)
C语言基础知识:操作符详解(附操作符优先级及结合性一览表)(下)
105 0
|
C语言
C语言基础知识:操作符详解(附操作符优先级及结合性一览表)(上)
C语言基础知识:操作符详解(附操作符优先级及结合性一览表)
93 0
|
Java 程序员
Java 操作符:Java 中操作符优先级、一二三元操作符及逻辑操作符的中德模佛定理
Java 操作符:Java 中操作符优先级、一二三元操作符及逻辑操作符的中德模佛定理
143 0
Java 操作符:Java 中操作符优先级、一二三元操作符及逻辑操作符的中德模佛定理
|
JavaScript 前端开发
【重温基础】5.表达式和运算符
【重温基础】5.表达式和运算符
124 0
C#(二十三)之C#中的is运算符
本篇内容记录了is运算符、向下转换、as运算符、接口interface的基本用法。
132 0
C#(二十三)之C#中的is运算符