运算符
1.算数运算符
可以对两个数据进行算数运算
| 运算符 | 描述 | 实例 |
|---|---|---|
| + | 对两个数字进行相加的计算 | int a = 10 + 10; |
| - | 对两个数字进行相减的计算 | int a = 10 - 5; |
| * | 对两个数字进行相乘的计算 | int a = 10 * 10; |
| / | 对两个数字进行相除的计算 | int a = 10 / 10; |
| % | 对两个数字进行求模运算(求余数) | int a = 10 % 3; |
c++
#include <iostream>
using namespace std;
int main() {
cout << 10 + 3 << endl; // 13
cout << 10 - 3 << endl; // 7
cout << 10 * 3 << endl; // 30
cout << 10 / 3 << endl; // 3
cout << 10 % 3 << endl; // 1
return 0;
}注意:
- 整型与整型的计算结果,还是整型。若计算结果含有小数,会自动小数部分去掉,只留整数
| 运算符 | 描述 | 实例 |
|---|---|---|
| ++ | 自增运算符,整数值增加 1 | 10++,结果为11 |
| -- | 自减运算符,整数值减少 1 | 10--,结果为9 |
c++
#include <iostream>
using namespace std;
int main() {
int num = 10;
num++;
cout << num << endl; // 11
int num1 = 20;
num1--;
cout << num1 << endl; // 19
return 0;
}注意:自增/自减运算符可以放在变量的后面,也可以放在前面,而位置不对,逻辑顺序也不同
- 放在变量前:先执行自增/自减的操作,然后取自增自减之后的值来使用
- 放在变量后:代表先取变量的值使用,再执行自增/自减的操作。
c++
#include <iostream>
using namespace std;
int main() {
int num = 10;
cout << num++ << endl; // 10
cout << num << endl; // 11
int num1 = 20;
cout << ++num1 << endl; // 21
return 0;
}由此可见,第一条打印语句执行时,先把num的值打印,再自增
而第二条打印语句先把num1的值加一,再打印,所以会是21
练习:在控制台上输入一个三位的数字,输出每一位的数字的和。例如,输入123,输出6
c++
#include <iostream>
using namespace std;
int main() {
int num;
cin >> num;
int gewei = num % 10;
int shiwei = num / 10 % 10;
int baiwei = num / 100;
cout << gewei + shiwei + baiwei << endl;
return 0;
}2.赋值运算符
| 运算符 | 用法 | 等同于 | 描述 |
|---|---|---|---|
| = | x = y | 赋值,把右值赋值给左值 | |
| += | x += y | x = x + y | 加法赋值,把左值加上右值,再赋值给左值 |
| -= | x -= y | x = x - y | 减法赋值,把左值减上右值,再赋值给左值 |
| *= | x *= y | x = x * y | 乘法赋值,把左值乘上右值,再赋值给左值 |
| /= | x /= y | x = x / y | 除法赋值,把左值除上右值,再赋值给左值 |
| %= | x %= y | x = x % y | 取余赋值,把左值除上右值,再把余数赋值给左值 |
| <<= | x <<= y | x = x << y | 左移赋值,把左值向左移动右值的位数,再赋值给左值 |
| >>= | x >>= y | x = x >> y | 右移赋值,把左值向右移动右值的位数,再赋值给左值 |
| &= | x &= y | x = x &= y | 按位与,并赋值,把左值和右值按位且,再赋值给左值 |
| ^= | x ^= y | x = x ^= y | 按位异或,并赋值,把左值和右值按位异或,再赋值给左值 |
| |= | x ^= y | x = x ^= y | 按位或,并赋值,把左值和右值按位或,再赋值给左值 |
3.比较运算符
对两个变量进行比较,最后的结果为布尔值
| 运算符 | 用法 | 描述 |
|---|---|---|
| == | x == y | 等于,比较值 |
| != | x != y | 不等于 |
| > | x > y | 大于 |
| < | x < y | 小于 |
| >= | x >= y | 大于或等于 |
| <= | x <= y | 小于或等于 |
4.逻辑运算符
对两个布尔型的变量进行逻辑操作
| 运算符 | 描述 |
|---|---|
| & | 且运算,运算符两边都为true才为true,否则为false |
| || | 或运算,运算符两边有一边为true即为true,否则为false |
| ! | 取反,!true即为false |
| && | 短路与,左边的结果为真,则最后的结果为右边的结果;左边的结果为假,则右边的表达式不参与运算,最后的结果为直接为假 |
| || | 短路与,左边的结果为真,则右边的表达式不参与运算,最后的结果为直接为真;左边的结果为假,则最后的结果为右边的结果 |
5.位运算符
对两个整形数字进行计算
| 运算符 | 描述 | 例子 | 类似于 | 结果 | 十进制 |
|---|---|---|---|---|---|
| & | AND | x = 5 & 1 | 0101 & 0001 | 0001 | 1 |
| | | OR | x = 5 | 1 | 0101 | 0001 | 0101 | 5 |
| ~ | 取反 | x = ~ 5 | ~0101 | 1010 | -6 |
| ^ | 异或 | x = 5 ^ 1 | 0101 ^ 0001 | 0100 | 4 |
| << | 左移 | x = 5 << 1 | 0101 << 1 | 1010 | 10 |
| >> | 右移 | x = 5 >> 1 | 0101 >> 1 | 0010 | 2 |
6.三元运算符
语法
js
条件 ? 为true触发的逻辑 : 为false触发的逻辑例子
c++
#include <iostream>
using namespace std;
int main() {
string num = 10 < 11 ? "回答正确" : "回答错误";
cout << num << endl; // "回答正确"
return 0;
}