- 算术运算符:用于进行算术运算,包括加、减、乘、除、取余等。
运算符 | 描述 | 举例 |
---|
+ | 加法运算符,用于两个操作数相加 | a + b = 15 |
– | 减法运算符,用于从一个操作数中减去另一个操作数 | a – b = -5 |
* | 乘法运算符,用于两个操作数相乘 | a * b = 50 |
/ | 除法运算符,用于将一个操作数除以另一个操作数 | b / a = 2 |
% | 取余运算符,用于对两个操作数取模 | b % a = 0 |
++ | 自增运算符,用于将操作数的值加1 | ++a 表示a的值加1 |
– | 自减运算符,用于将操作数的值减1 | –a 表示a的值减1 |
- 关系运算符:用于比较两个值的大小,结果为真或假。
运算符 | 描述 | 举例 |
---|
== | 检查两个操作数是否相等,如果相等则条件为真 | (a == b)为假 |
!= | 检查两个操作数是否不相等,如果不相等则条件为真 | (a != b)为真 |
> | 检查左边操作数是否大于右边操作数,如果是,则条件为真 | (a > b)为假 |
< | 检查左边操作数是否小于右边操作数,如果是,则条件为真 | (a < b)为真 |
>= | 检查左边操作数是否大于或等于右边操作数,如果是,则条件为真 | (a >= b)为假 |
<= | 检查左边操作数是否小于或等于右边操作数,如果是,则条件为真 | (a <= b)为真 |
- 逻辑运算符:用于对两个或以上的条件进行逻辑运算,结果为真或假。
运算符 | 描述 | 举例 |
---|
&& | 逻辑与运算符,如果两个操作数都非零,则条件为真 | (a && b)为假,因为a为零 |
|| | 逻辑或运算符,如果两个操作数中有任意一个非零,则条件为真 | (a || b)为真,因为b为非零 |
! | 逻辑非运算符,用于反转操作数的逻辑状态 | !(a && b)为真,因为a && b为假,则!(a && b)为真 |
- 位运算符:用于对二进制数据进行位操作,可以实现移位、按位与、按位或、按位异或等运算。
运算符 | 描述 | 举例 |
---|
& | 按位与运算符,对二进制数进行与运算 | a & b = 12,二进制数1100 & 1010 = 1000 |
| | 按位或运算符,对二进制数进行或运算 | a | b = 15,二进制数1100 | 1010 = 1111 |
^ | 按位异或运算符,对二进制数进行异或运算 | a ^ b = 3,二进制数1100 ^ 1010 = 0010 |
~ | 按位取反运算符,将操作数的二进制位取反 | ~a = -61,(~1100 = 0011)补码 = -0011 |
<< | 左移运算符,将操作数的二进制位向左移动指定位数 | a << 2 = 48,二进制数1100 << 2 = 110000 |
>> | 右移运算符,将操作数的二进制位向右移动指定位数 | a >> 2 = 3,二进制数1100 >> 2 = 11 |
- 赋值运算符:用于将一个值赋给另一个变量。
运算符 | 描述 | 举例 |
---|
= | 简单的赋值运算符 | C = A + B |
+= | 加和赋值运算符 | C += A |
-= | 减和赋值运算符 | C -= A |
*= | 乘和赋值运算符 | C *= A |
/= | 除和赋值运算符 | C /= A |
%= | 模和赋值运算符 | C %= A |
<<= | 左移和赋值运算符 | C <<= 2 |
>>= | 右移和赋值运算符 | C >>= 2 |
&= | 按位与和赋值运算符 | C &= 2 |
^= | 按位异或和赋值运算符 | C ^= 2 |
|= | 按位或和赋值运算符 | C | = 2 |
以下是一些示例:
int a = 21;int b = 10;int c;c = a + b; c = a - b; c = a * b; c = a / b; c = a % b; c = ++a; c = --b; if(a == b) {...} if(a != b) {...} if(a > b) {...} if(a < b) {...} if(a >= b) {...} if(a <= b) {...} int x = 5;int y = 8;if(x && y) {...} if(x || y){...} if(!(x && y)) {...} unsigned int a = 0x5a5a5a5a; unsigned int b = 0xa5a5a5a5; unsigned int c = a & b; unsigned int d = a | b; unsigned int e = a ^ b; unsigned int f = ~a; unsigned int g = a << 2; unsigned int h = a >> 2; int i = 10;int j = 5;i += j; i -= j; i *= j; i /= j; i %= j; unsigned int k = 0x5a; k <<= 2;