# 4. 基本运算 在编程中,运算符是用于执行运算的符号,C++ 提供了多种类型的运算符,涵盖从基本的加减乘除到位运算等功能。本节将系统讲解各种常见运算符。 --- ## 【1】算术运算 ### 概念说明 算术运算符用于执行基本的数学计算。 | 运算符 | 含义 | 示例表达式 | 结果 | |--------|----------|------------|------------| | `+` | 加法 | `3 + 2` | 5 | | `-` | 减法 | `3 - 2` | 1 | | `*` | 乘法 | `3 * 2` | 6 | | `/` | 除法 | `5 / 2` | 2(整型) | | `//` | 整除 | `5 / 2` | 2(整型) | | `%` | 取余 | `5 % 2` | 1 | ### 示例代码(C++) ```cpp #include using namespace std; int main() { int a = 5, b = 2; 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 % b = " << a % b << endl; return 0; } ``` --- ## 【1】关系运算 ### 概念说明 关系运算用于比较两个值的关系,结果为布尔值(true 或 false)。 | 运算符 | 含义 | 示例 | |--------|------------|----------| | `>` | 大于 | `a > b` | | `>=` | 大于等于 | `a >= b` | | `<` | 小于 | `a < b` | | `<=` | 小于等于 | `a <= b` | | `==` | 等于 | `a == b` | | `!=` | 不等于 | `a != b` | ### 示例代码 ```cpp int a = 5, b = 3; cout << (a > b) << endl; // 输出 1(true) cout << (a == b) << endl; // 输出 0(false) ``` --- ## 【1】逻辑运算 ### 概念说明 逻辑运算符用于多个条件的组合判断。 | 运算符 | 含义 | 示例 | 说明 | |--------|------|------------------|-------------------| | `&&` | 与 | `a > 0 && b > 0` | 两个都为真才为真 | | `||` | 或 | `a > 0 || b > 0` | 一个为真就为真 | | `!` | 非 | `!(a > 0)` | 条件取反 | ### 示例代码 ```cpp bool a = true, b = false; cout << (a && b) << endl; // 输出 0 cout << (a || b) << endl; // 输出 1 cout << (!a) << endl; // 输出 0 ``` --- ## 【1】变量自增与自减运算 ### 运算符 | 运算符 | 含义 | 示例 | |--------|--------------|----------| | `++` | 自增 | `a++` | | `--` | 自减 | `b--` | ### 前缀和后缀的区别: - `++a`:先加后用 - `a++`:先用后加 ### 示例代码 ```cpp int a = 5; cout << ++a << endl; // 输出 6 cout << a++ << endl; // 输出 6,再加变成 7 cout << a << endl; // 输出 7 ``` --- ## 【1】三目运算符 ### 概念说明 三目运算符是一种简洁的条件表达式写法。 ### 语法格式: ```cpp condition ? value_if_true : value_if_false; ``` ### 示例代码 ```cpp int a = 5, b = 10; int max = (a > b) ? a : b; cout << "较大值是: " << max << endl; ``` --- ## 【2】位运算 ### 概念说明 位运算是直接对整数的二进制位进行操作的运算。 | 运算符 | 含义 | 示例 | 说明 | |--------|----------|-----------|---------------------------| | `&` | 按位与 | `a & b` | 都为1才为1 | | `|` | 按位或 | `a | b` | 有一个为1就为1 | | `~` | 按位非 | `~a` | 1变0,0变1(按位取反) | | `^` | 按位异或 | `a ^ b` | 相同为0,不同为1 | | `<<` | 左移 | `a << 1` | 相当于乘2 | | `>>` | 右移 | `a >> 1` | 相当于除2 | ### 示例代码 ```cpp int a = 5, b = 3; // 二进制: a=0101, b=0011 cout << (a & b) << endl; // 1 cout << (a | b) << endl; // 7 cout << (a ^ b) << endl; // 6 cout << (~a) << endl; // -6(因为补码) cout << (a << 1) << endl; // 10 cout << (a >> 1) << endl; // 2 ``` --- ## 总结 - 熟练掌握算术、关系、逻辑、自增减、三目和位运算是编程的基础。 - 编程时建议使用 `括号` 明确优先级,增强代码可读性。 - 多做练习能更好地掌握各种运算符的特性。