第三课 运算
程序已经存储好了数据,接下来就是运算出我们想要的结果。C++中的运算分为算术运算、关系运算、逻辑运算、位运算等。
一、算术运算
- + 加法:求两个数的和
- – 减法 :求两个数的差
- * 乘法 :求两个数的积
- / 除法:求两个数的商(整数除法取整)
- % 取余 (模运算):求余数
#include <iostream>
using namespace std;
int main() {
int a = 10, b = 3;
cout << "a + b = " << (a + b) << endl; // 输出13
cout << "a - b = " << (a - b) << endl; // 输出7
cout << "a * b = " << (a * b) << endl; // 输出30
cout << "a / b = " << (a / b) << endl; // 输出3(整数除法)
cout << "a % b = " << (a % b) << endl; // 输出1(余数)
// 浮点除法
double x = 10.0, y = 3.0;
cout << "x / y = " << (x / y) << endl; // 输出3.33333
return 0;
}
二、关系运算(返回bool值,结果为0或1)
- == 等于:判断两边是否相等
- != 不等于:判断两边是否不相等
- > 大于:判断左边是否大于右边
- < 小于:判断左边是否小于右边
- >= 大于等于:判断左边是否大于或等于右边
- <= 小于等于:判断左边是否小于或等于右边
#include <iostream>
using namespace std;
int main() {
int a = 5, b = 10;
cout << "a == b: " << (a == b) << endl; // 0(假)
cout << "a != b: " << (a != b) << endl; // 1(真)
cout << "a > b: " << (a > b) << endl; // 0(假)
cout << "a < b: " << (a < b) << endl; // 1(真)
cout << "a >= b: " << (a >= b) << endl; // 0(假)
cout << "a <= b: " << (a <= b) << endl; // 1(真)
return 0;
}
三、逻辑运算
- && 逻辑与(并且):两边都为真才为真
- || 逻辑或(或者):两边有一边为真就为真
- ! 逻辑非(取反):真变假,假变真
#include <iostream>
using namespace std;
int main() {
bool a = true, b = false;
cout << "true && false: " << (a && b) << endl; // 0
cout << "true || false: " << (a || b) << endl; // 1
cout << "!true: " << (!a) << endl; // 0
cout << "!false: " << (!b) << endl; // 1
// 组合逻辑
int x = 5;
cout << "(x > 0 && x < 10): " << (x > 0 && x < 10) << endl; // 1
return 0;
}
四、位运算(操作二进制位)
- & 按位与:对应位都为1才为1
- | 按位或:对应位有一个为1就为1
- ^ 按位异或:对应位不同为1,相同为0
- ~ 按位取反:0变1,1变0
- << 左移:二进制位向左移动
- >>右移:二进制位向右移动
#include <iostream>
using namespace std;
int main() {
int a = 5; // 二进制:0101
int b = 3; // 二进制:0011
cout << "5 & 3 = " << (a & b) << endl; // 1 (0001)
cout << "5 | 3 = " << (a | b) << endl; // 7 (0111)
cout << "5 ^ 3 = " << (a ^ b) << endl; // 6 (0110)
cout << "~5 = " << (~a) << endl; // -6
int c = 1; // 二进制:0001
cout << "1 << 2 = " << (c << 2) << endl; // 4 (0100)
cout << "8 >> 1 = " << (8 >> 1) << endl; // 4
return 0;
}
五、自增自减运算
- ++i:先自增再使用
- i++:先使用再自增
- –i:先自减再使用
- i–:先使用再自减
#include <iostream>
using namespace std;
int main() {
int i = 5, j = 5;
cout << "i++ = " << i++ << endl; // 输出5,然后i变成6
cout << "i = " << i << endl; // 输出6
cout << "++j = " << ++j << endl; // j先变成6,然后输出6
cout << "j = " << j << endl; // 输出6
return 0;
}
