运算符
C++中,运算符是用于执行算术、赋值等操作的符号。这篇笔记我们对运算符的使用进行简单的介绍。
算术运算符
算术运算符用于计算加减乘除、取模等运算。
| 算术运算符 | 说明 | 例子 | 计算结果 |
|---|---|---|---|
| + | 加 | 1 + 2 | 3 |
| - | 减 | 1 - 2 | -1 |
| * | 乘 | 1 * 2 | 2 |
| / | 除 | 2 / 1 | 2 |
| % | 取模 | 5 % 3 | 2 |
| ++ | 前置递增 | a = 2; b == ++a; | a = 3; b = 3; |
| ++ | 后置递增 | a = 2; b == a++; | a = 3; b = 2; |
| -- | 前置递减 | a = 2; b == --a; | a = 1; b = 1; |
| -- | 后置递减 | a = 2; b == a--; | a = 1; b = 2; |
下面例子演示了算术运算符的使用。
#include <iostream>
int main() {
int a = 1;
int b = 2;
int sum = a + b;
std::cout << sum << std::endl;
return 0;
}
位运算符
位运算符主要用于二进制数据操作。
| 位运算符 | 说明 | 例子 | 计算结果 |
|---|---|---|---|
| & | 按位与 | a = 0b1010; b = 0b1111; c = a & b; | c = 0b1010; |
| 按位或 | a = 0b1010; b = 0b1111; c = a b; |
c = 0b1111; | ||
| ^ | 按位异或 | a = 0b1010; b = 0b1111; c = a ^ b; | c = 0b0101; |
| ~ | 按位取反 | a = 0b1010; b = ~a; | b = 0b0101; |
| << | 左移 | a = 0b1010; b = a << 1; | b = 0b10100; |
| >> | 右移 | a = 0b1010; b = a >> 1; | b = 0b101; |
下面是一个使用位运算的例子,代码中我们使用了C++14引入的二进制字面量,它使用0b开头表示二进制整数,此外我们还使用了std::bitset<N>将整数转为了固定位的二进制字符串方便打印。
#include <iostream>
#include <bitset>
int main() {
int a = 0b1010;
int b = 0b1111;
int c = a & b;
std::cout << std::bitset<4>(c) << std::endl;
return 0;
}
赋值运算符
赋值运算符用于将表达式的值赋予变量。
| 赋值运算符 | 说明 | 例子 | 计算结果 |
|---|---|---|---|
| = | 直接赋值 | a = 2; | a = 2; |
| += | 加等赋值 | a = 2; a += 1; | a = 3; |
| -= | 减等赋值 | a = 2; a -= 1; | a = 1; |
| *= | 乘等赋值 | a = 2; a *= 2; | a = 4; |
| /= | 除等赋值 | a = 2; a /= 2; | a = 1; |
| %= | 模等赋值 | a = 3; a %= 2; | a = 1; |
下面例子演示了赋值运算符的使用。
#include <iostream>
int main() {
int a = 1;
a += 1;
std::cout << a << std::endl;
return 0;
}
比较运算符
比较运算符用于比较表达式并返回true或false。
| 比较运算符 | 说明 | 例子 | 计算结果 |
|---|---|---|---|
| == | 等于 | 1 == 2 | false |
| != | 不等于 | 1 != 2 | true |
| < | 小于 | 1 < 2 | true |
| > | 大于 | 1 > 2 | false |
| <= | 小于等于 | 1 <= 2 | true |
| >= | 大于等于 | 1 >= 2 | false |
比较运算符常用于if语句的条件判断,下面例子演示了比较运算符的使用。
#include <iostream>
int main() {
if (1 < 2) {
std::cout << "true" << std::endl;
}
return 0;
}
逻辑运算符
逻辑运算符包含与、或、非3种。
| 逻辑运算符 | 说明 | 例子 | 计算结果 |
|---|---|---|---|
| ! | 非 | a = true; b = !a; | a = false; |
| && | 与 | a = true && false; | a = false; |
| || | 或 | a = true || false; | a = true; |
下面例子演示了逻辑运算符的使用。
#include <iostream>
int main() {
int a = 10;
std::cout << (a < 20 && a % 2 == 0) << std::endl;
return 0;
}
三目运算符
三目运算符其实是一种特殊的流程控制结构,它可以简化一些判断逻辑写法,下面是一个例子。
#include <iostream>
int main() {
int a = 10;
a < 20
? std::cout << "a is smaller than 20" << std::endl
: std::cout << "a is bigger or equal than 20" << std::endl;
return 0;
}
三目运算符的写法类似... ? ... : ...,程序会根据问号前面的表达式是true还是false来决定执行冒号前面的部分还是冒号后面的部分。
作者:Gacfox
版权声明:本网站为非盈利性质,文章如非特殊说明均为原创,版权遵循知识共享协议CC BY-NC-ND 4.0进行授权,转载必须署名,禁止用于商业目的或演绎修改后转载。