C++短暂之旅|4. C++运算符

目录

1. 算术运算符
2. 关系运算符
3. 逻辑运算符
4. 位运算符
5. 赋值运算符
【C++短暂之旅|4. C++运算符】6. C++ 中的运算符优先级

1. 算术运算符 假设变量 A 的值为 10,变量 B 的值为 20
C++短暂之旅|4. C++运算符
文章图片


#include using namespace std; int main() { int a = 21; int b = 10; int c; c = a + b; cout << "Line 1 - c 的值是 " << c << endl ; c = a - b; cout << "Line 2 - c 的值是 " << c << endl ; c = a * b; cout << "Line 3 - c 的值是 " << c << endl ; c = a / b; cout << "Line 4 - c 的值是 " << c << endl ; c = a % b; cout << "Line 5 - c 的值是 " << c << endl ; int d = 10; //测试自增、自减 c = d++; cout << "Line 6 - c 的值是 " << c << endl ; d = 10; // 重新赋值 c = d--; cout << "Line 7 - c 的值是 " << c << endl ; return 0; }

Line 1 - c 的值是 31 Line 2 - c 的值是 11 Line 3 - c 的值是 210 Line 4 - c 的值是 2 Line 5 - c 的值是 1 Line 6 - c 的值是 10 Line 7 - c 的值是 10

a++:先赋值再增加
++a:先增加再赋值
#include using namespace std; int main() { int a = 21; int c ; // a 的值在赋值之前不会自增 c = a++; cout << "Line 1 - Value of a++ is :" << c << endl ; // 表达式计算之后,a 的值增加 1 cout << "Line 2 - Value of a is :" << a << endl ; // a 的值在赋值之前自增 c = ++a; cout << "Line 3 - Value of ++a is:" << c << endl ; return 0; }

Line 1 - Value of a++ is :21 Line 2 - Value of a is :22 Line 3 - Value of ++a is:23

2. 关系运算符 假设变量 A 的值为 10,变量 B 的值为 20
C++短暂之旅|4. C++运算符
文章图片


#include using namespace std; int main() { int a = 21; int b = 10; int c ; if( a == b ) { cout << "Line 1 - a 等于 b" << endl ; } else { cout << "Line 1 - a 不等于 b" << endl ; } if ( a < b ) { cout << "Line 2 - a 小于 b" << endl ; } else { cout << "Line 2 - a 不小于 b" << endl ; } if ( a > b ) { cout << "Line 3 - a 大于 b" << endl ; } else { cout << "Line 3 - a 不大于 b" << endl ; } /* 改变 a 和 b 的值 */ a = 5; b = 20; if ( a <= b ) { cout << "Line 4 - a 小于或等于 b" << endl ; } if ( b >= a ) { cout << "Line 5 - b 大于或等于 a" << endl ; } return 0; }


Line 1 - a 不等于 b Line 2 - a 不小于 b Line 3 - a 大于 b Line 4 - a 小于或等于 b Line 5 - b 大于或等于 a

3. 逻辑运算符 假设变量 A 的值为 1,变量 B 的值为 0
C++短暂之旅|4. C++运算符
文章图片


#include using namespace std; int main() { int a = 5; int b = 20; int c ; if ( a && b ) { cout << "Line 1 - 条件为真"<< endl ; } if ( a || b ) { cout << "Line 2 - 条件为真"<< endl ; } /* 改变 a 和 b 的值 */ a = 0; b = 10; if ( a && b ) { cout << "Line 3 - 条件为真"<< endl ; } else { cout << "Line 4 - 条件不为真"<< endl ; } if ( !(a && b) ) { cout << "Line 5 - 条件为真"<< endl ; } return 0; }


Line 1 - 条件为真 Line 2 - 条件为真 Line 4 - 条件不为真 Line 5 - 条件为真

4. 位运算符 位运算符作用于位,并逐位执行操作。&、 | 和 ^ 的真值表如下:
C++短暂之旅|4. C++运算符
文章图片

假设如果 A = 60,且 B = 13
A = 0011 1100
B = 0000 1101
-----------------
A&B = 0000 1100
A|B = 0011 1101
A^B = 0011 0001
~A= 1100 0011
运算符 描述
& 按位与操作,按二进制位进行"与"运算。
0&0=0; 0&1=0; 1&0=0; 1&1=1;

| 按位或运算符,按二进制位进行"或"运算。
0|0=0; 0|1=1; 1|0=1; 1|1=1;

^ 异或运算符,按二进制位进行"异或"运算。
0^0=0; 0^1=1; 1^0=1; 1^1=0;

~ 取反运算符,按二进制位进行"取反"运算。
~1=-2; ~0=-1;

<< 二进制左移运算符。将一个运算对象的各二进制位全部左移若干位(左边的二进制位丢弃,右边补0)。
>> 二进制右移运算符。将一个数的各二进制位全部右移若干位,正数左补0,负数左补1,右边丢弃。

#include using namespace std; int main() { unsigned int a = 60; // 60 = 0011 1100 unsigned int b = 13; // 13 = 0000 1101 int c = 0; c = a & b; // 12 = 0000 1100 cout << "Line 1 - c 的值是 " << c << endl ; c = a | b; // 61 = 0011 1101 cout << "Line 2 - c 的值是 " << c << endl ; c = a ^ b; // 49 = 0011 0001 cout << "Line 3 - c 的值是 " << c << endl ; c = ~a; // -61 = 1100 0011 cout << "Line 4 - c 的值是 " << c << endl ; c = a << 2; // 240 = 1111 0000 cout << "Line 5 - c 的值是 " << c << endl ; c = a >> 2; // 15 = 0000 1111 cout << "Line 6 - c 的值是 " << c << endl ; return 0; }

Line 1 - c 的值是 12 Line 2 - c 的值是 61 Line 3 - c 的值是 49 Line 4 - c 的值是 -61 Line 5 - c 的值是 240 Line 6 - c 的值是 15

5. 赋值运算符 C++短暂之旅|4. C++运算符
文章图片


#include using namespace std; int main() { int a = 21; int c ; c =a; cout << "Line 1 - =运算符实例,c 的值 = : " <>=2; cout << "Line 8 - >>= 运算符实例,c 的值 = : " <


Line 1 - =运算符实例,c 的值 = 21 Line 2 - += 运算符实例,c 的值 = 42 Line 3 - -= 运算符实例,c 的值 = 21 Line 4 - *= 运算符实例,c 的值 = 441 Line 5 - /= 运算符实例,c 的值 = 21 Line 6 - %= 运算符实例,c 的值 = 11 Line 7 - <<= 运算符实例,c 的值 = 44 Line 8 - >>= 运算符实例,c 的值 = 11 Line 9 - &= 运算符实例,c 的值 = 2 Line 10 - ^= 运算符实例,c 的值 = 0 Line 11 - |= 运算符实例,c 的值 = 2

6. C++ 中的运算符优先级 C++短暂之旅|4. C++运算符
文章图片


#include using namespace std; int main() { int a = 20; int b = 10; int c = 15; int d = 5; int e; e = (a + b) * c / d; // ( 30 * 15 ) / 5 cout << "(a + b) * c / d 的值是 " << e << endl ; e = ((a + b) * c) / d; // (30 * 15 ) / 5 cout << "((a + b) * c) / d 的值是 " << e << endl ; e = (a + b) * (c / d); // (30) * (15/5) cout << "(a + b) * (c / d) 的值是 " << e << endl ; e = a + (b * c) / d; //20 + (150/5) cout << "a + (b * c) / d 的值是 " << e << endl ; return 0; }

(a + b) * c / d 的值是 90 ((a + b) * c) / d 的值是 90 (a + b) * (c / d) 的值是 90 a + (b * c) / d 的值是 50

    推荐阅读