本篇我们将会介绍一些基础的C++操作,如减法,加法,除法和乘法。
我们将讨论下列操作
- C++中的操作
- 例子
- 运算符的优先级
- 例子
C++中的数学非常简单。请记住,C++数学运算遵循高中数学的运算法则。例如,乘法和除法的优先级高于加法和减法,可以用括号更改这些操作的求值顺序。
C++中的操作
C++中数学运算符操作如下:
Symbols | Arithmetic operators |
---|---|
+ | add |
– | subtract |
/ | divide |
* | multiply |
% | modulus division |
+= | add and assign |
-= | subtract and assign |
/= | divide and assign |
*= | multiply and assign |
%= | mod and assign |
例子
加,减,乘,除
让我们看看如何在C++中编写代码时使用这些操作
#include <iostream>
using namespace std;
int main() {
int myInt = 100;
myInt = myInt / 10; //myInt 现在为 10
cout <<"Value of myInt after division by 10 is: " <<myInt << endl;
myInt = myInt * 10; //myInt 又变为 100
cout <<"Value of myInt after multiplication by 10 is: " <<myInt << endl;
myInt = myInt + 50; //myInt 增加为 150
cout <<"Value of myInt after addition of 50 is: " <<myInt << endl;
myInt = myInt - 50; //myInt 变回一开始的 100
cout <<"Value of myInt after subtraction of 50 is: " <<myInt << endl;
myInt = myInt + 100 * 2; // myInt 现在是 300
cout << "Value of myInt after adding 100 and multiplying by 2 is: "<<myInt<<endl;
myInt = (myInt + 100) * 2; // myInt 现在是 800
cout << "Value of myInt after doing the same operations using paranthesis is: "<<myInt<<endl;
myInt -= 10; // myInt 现在 790 b
cout << "Value of myInt after -=10 operation is: "<<myInt<<endl;
myInt = myInt % 100; // myInt 现在是 90
cout << "Value of myInt after taking modulus with 100 is: "<<myInt<<endl;
cout << "Value of myInt after all operations is: " <<myInt << endl;
return 0;
}
运算符的优先级
运算符的优先级指定表达式中包含多个运算符的运算顺序。操作符结合性指定在包含具有相同优先级的多个操作符的表达式中,一个操作数是与其左边的操作数结合还是与右边的操作数结合。下表显示了C++操作符的优先级和结合性(从高优先级到最低优先级)。
运算符 | 描述 | 结合性 |
---|---|---|
从右到左 | ||
+ – | 加减操作 | |
! ~ | Logical NOT and bitwise NOT | |
* | Indirection (dereference) | |
& | Address-of | |
new, new[] | Dynamic memory allocation | |
delete, delete[] | Dynamic memory deallocation | |
= | Direct assignment | |
+= -= | Assignment by sum and difference | |
*= /= %= | Assignment by product, quotient, and remainder | |
<<= >>= | Assignment by bitwise left shift and right shift | |
&= ^= = | Assignment by bitwise AND, XOR, and OR | |
++ — | Suffix/postfix increment and decrement | |
从左到右 | ||
* / % | Multiplication, division, and remainder | |
+ – | Addition and subtraction | |
<< >> | Bitwise left shift and right shift | |
< <= | For relational operators | |
> >= | For relational operators | |
== != | For relational operators | |
^ | Bitwise XOR (exclusive or) | |
&& | Logical AND | |
|| | Logical OR | |
| | Bitwise OR (inclusive or) | |
?: | Ternary conditional |
举例
如果你想计算给定的表达式:
20 + 30 * 2 / 10 – 3
根据C++操作符的优先级,他首先计算 30 * 2 = 60
然后计算 60 / 10 = 6
, 因为乘法和除法的优先级相同,但是计算是先从左到右的,然后再加上 20 + 6 = 26 ,减去 26 - 3 = 23
,同样,加法与减法的优先级相同,但是从左到右进行运算,所以最终答案 23
.
#include <iostream>
using namespace std;
int main() {
// 20 + 30 * 2 / 10 - 3
cout << "Answer is " << 20 + 30 * 2 / 10 - 3 << endl;
return 0;
}
你可以试一试这个程序,并尝试写出自己的程序!