运算符
算术运算符
运算符 | 含义 | 举例 | 结果 |
---|---|---|---|
+ | 加法运算符 | a+b | a 和 b 的和 |
- | 减法运算符 | a-b | a 和 b 的差 |
* | 乘法运算符 | a*b | a 和 b 的乘 |
/ | 除法运算符 | a/b | a 除以 b 的商 |
% | 求余运算符 | a%b | a 除以 b 的余数 |
cpp
#include<iostream>
using namespace std;
int main()
{
int a = 7;
int b = 2;
cout << a + b << endl;
cout << a - b << endl;
cout << a * b << endl;
cout << a / b << endl;
cout << a % b << endl;
return 0;
}
拓展内容
后续为拓展内容
关系运算符
假设 a 是 6,b 是 5。
运算符 | 含义 | 举例 | 结果 |
---|---|---|---|
> | 大于 | a>b | true |
>= | 小于 | a>=b | true |
< | 大于等于 | a<b | false |
<= | 小于等于 | a<=b | false |
== | 等于 | a==b | false |
!= | 不等于 | a!=b | true |
提示
注:关于运算符的结果是布尔值,值只有两种:true 或 false。输出时会以 1 和 0 的方式输出。
cpp
#include<iostream>
using namespace std;
int main()
{
int a = 6;
int b = 5;
bool c;
c = a > b;
cout << c << endl;
c = a >= b;
cout << c << endl;
c = a < b;
cout << c << endl;
c = a <= b;
cout << c << endl;
c = a == b;
cout << c << endl;
c = a != b;
cout << c << endl;
return 0;
}
逻辑运算符
逻辑运算符就是对表达式或者变量做出逻辑判断的运算符,包括与(&&)、或(||)、非(!)三种。
假设 a 是 6,b 是 5,c 是 4。
运算符 | 说明 | 举例 | 结果 |
---|---|---|---|
&& | 运算符两边都是真,结果才为真 | a > b && b > c | true |
|| | 运算符两边有一边为真,结果为真 | a > b or c > b | true |
! | 反转运算符右边的值 | !(a>b) | false |
单目运算符
假设 a 是 1。
运算符 | 说明 | 举例 | 结果 |
---|---|---|---|
++ | 将变量自身加 1 | a++ | 2 |
-- | 将变量自身减 1 | a-- | 0 |
赋值运算符
注意
赋值运算符是为了精简程序,例如,score
在原有的基础上加1
,可以写成score = score + 1
,右边的 score 是原来的值,左边的 score 是新的值。也可以写成score += 1
。
运算符 | 描述 | 示例 |
---|---|---|
= | 赋值运算符 | c = a + b 将 a + b 的运算结果赋值为 c |
+= | 加法赋值运算符 | c += a 等效于 c = c + a |
-= | 减法赋值运算符 | c -= a 等效于 c = c - a |
*= | 乘法赋值运算符 | c _= a 等效于 c = c _ a |
/= | 除法赋值运算符 | c /= a 等效于 c = c / a |
%= | 取模赋值运算符 | c %= a 等效于 c = c % a |
位运算符
运算符 | 描述 | 实例 |
---|---|---|
& | 按位与运算符:参与运算的两个值,如果两个相应位都为 1,则该位的结果为 1,否则为 0 | (5 & 3) 输出结果 1 ,二进制解释:5 的二进制0101,3 的二进制0011,按位进行与运算,结果是:0001,对应十进制是数字 1 |
| | 按位或运算符:只要对应的二个二进位有一个为 1 时,结果位就为 1。 | (5 | 3) 输出结果 7 ,二进制解释: 5 的二进制0101,3 的二进制0011,按位进行或运算,结果是:0111,对应十进制是数字 7 |
^ | 按位异或运算符:当两对应的二进位相异时,结果为 1 | (5 ^ 3) 输出结果 6 ,二进制解释: 5 的二进制0101,3 的二进制0011,按位进行异或运算,结果是:0110,对应十进制是数字 6 |
~ | 按位取反运算符:对数据的每个二进制位取反,即把 1 变为 0,把 0 变为 1。~x 类似于 -x-1 | (~5 ) 输出结果 -6 ,二进制解释: 5 的二进制0101,按位取反,得到1010, 以一个有符号二进制数的补码形式存在,对应的十进制是-6。原码反码补码知识点 |
<< | 左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补 0。 | 5 << 1 输出结果 10 ,二进制解释:5 的二进制00101,<<1 之后变成 01010,对应十进制是数字 10,相当于乘 2 |
>> | 右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数,低位丢弃,高位补符号位。 | 5 >> 1 输出结果 2 ,二进制解释: 5 的二进制00101,>>1 之后变成 00010,对应十进制是数字 2,相当于整除 2 |
运算符的优先级
不同的运算符优先级不同,优先级决定了表达式运算的顺序。下表列出来大部分运算符的优先级;
运算符 | 描述 | 优先级 |
---|---|---|
. [] () | 最高级优先级 | 1 |
~ !++ -- | 单目运算符 | 2 |
* / % | 算术乘除模运算符 | 3 |
+ - | 算术加减运算符 | 4 |
>> << | 移位运算符 | 5 |
< <= > >= | 关系运算 | 6 |
== != | 关系运算 | 7 |
& | 按位与 | 8 |
^ | 按位异或 | 9 |
| | 按位或 | 10 |
&& | 逻辑与 | 11 |
|| | 逻辑或 | 12 |
= | 赋值运算符 | 13 |