C# 运算符
在 C# 中,运算符是用于执行各种操作的符号或符号组合。 C# 中的运算符包括算术运算符,比较运算符,逻辑运算符,位运算符等。
# 算术运算符
算术运算符用于执行算术操作,如加法,减法,乘法和除法。
运算符 | 描述 | 示例 |
---|---|---|
+ | 加法 | int result = 1 + 2; |
- | 减法 | int result = 5 - 3; |
* | 乘法 | int result = 2 * 3; |
/ | 除法 | int result = 10 / 2; |
% | 取模(取余数) | int result = 10 % 3; |
# 比较运算符
比较运算符用于比较两个值是否相等,大于或小于等关系。
运算符 | 描述 | 示例 |
---|---|---|
== | 相等 | bool result = (1 == 1); |
!= | 不相等 | bool result = (1 != 2); |
> | 大于 | bool result = (5 > 3); |
< | 小于 | bool result = (3 < 5); |
>= | 大于等于 | bool result = (5 >= 5); |
<= | 小于等于 | bool result = (3 <= 5); |
# 逻辑运算符
逻辑运算符用于组合和操作布尔值(true/false)。
运算符 | 描述 | 示例 |
---|---|---|
&& | 逻辑与 | bool |
|| | 逻辑或 | bool |
! | 逻辑非 | bool |
# 位运算符
位运算符用于对二进制位进行操作。
运算符 | 描述 | 示例 |
---|---|---|
& | 按位与 | int result = 3 & 5; |
| | 按位或 | int result = 3 |
^ | 按位异或 | int result = 3 ^ 5; |
~ | 按位取反 | int result = ~3; |
<< | 左移 | int result = 3 << 2; |
>> | 右移 | int result = 10 >> 1; |
# 赋值运算符
赋值运算符用于将一个值赋给变量。
运算符 | 描述 | 示例 |
---|---|---|
= | 赋值 | int a = 5; |
+= | 加后赋值 | a += 3; |
-= | 减后赋值 | a -= 2; |
*= | 乘后赋值 | a *= 4; |
/= | 除后赋值 | a /= 2; |
%= | 取模后赋值 | a %= 3; |
<<= | 左移后赋值 | a <<= 2; |
>>= | 右移后赋值 | a >>= 1; |
&= | 按位与后赋值 | a &= 3; |
|= | 按位或后赋值 | a \|= 5; |
^= | 按位异或后赋值 | a ^= 3; |
# 其他运算符
除了上述常见的运算符外,C# 还提供了一些其他的运算符,如条件运算符,类型转换运算符和空值运算符等。
# 条件运算符
条件运算符(?:)是一种简洁的 if-else 语句的替代方式。
int a = 5;
int b = 3;
int max = (a > b) ? a : b;
# 类型转换运算符
类型转换运算符用于将一个数据类型转换为另一个数据类型。
int a = 5;
double b = (double)a;
# 空值运算符
空值运算符(??)用于检查一个值是否为 null,如果是,则返回一个默认值。
int? a = null;
int b = a ?? 0;
上述代码中,如果 a 的值为 null,则 b 将被赋值为 0。
# 运算符优先级
在 C# 中,运算符的优先级决定了它们在表达式中的执行顺序。优先级较高的运算符先于优先级较低的运算符执行。
以下是 C# 中运算符优先级的列表,按从高到低的顺序排列:
- ()
- ++, --(后缀)
- ++, --(前缀)
- !, ~, +, -, (类型), *(指针), &(取地址)
- *, /, %
- +, -
- <<, >>
- <, <=, >, >=
- ==, !=
- &
- ^
- |
- &&
- ||
- ?:
- =, +=, -=, *=, /=, %=, <<=, >>=, &=, ^=, |=
# 示例代码
以下是使用 C# 运算符进行计算的一些示例代码:
int a = 5;
int b = 3;
int sum = a + b;
int difference = a - b;
int product = a * b;
int quotient = a / b;
int remainder = a % b;
bool isEqual = (a == b);
bool isGreater = (a > b);
bool isLess = (a < b);
bool condition1 = true;
bool condition2 = false;
bool result1 = (condition1 && condition2);
bool result2 = (condition1 || condition2);
bool result3 = !condition1;
int num1 = 3; //二进制表示为 0011
int num2 = 5; //二进制表示为 0101
int andResult = num1 & num2; //二进制为 0001,即 1
int orResult = num1 | num2; //二进制为 0111,即 7
int xorResult = num1 ^ num2; //二进制为 0110,即 6
int complementResult = ~num1; //二进制为 1100,即 -4
int leftShiftResult = num1 << 2; //二进制为 1100,即 12
int rightShiftResult = num2 >> 1; //二进制为 0010,即 2
int num3 = 5;
int num4 = 3;
num3 += num4; // num3 等于 8
num3 -= num4; // num3 等于 5
num3 *= num4; // num3 等于 15
num3 /= num4; // num3 等于 5
num3 %= num4; // num3 等于 2
num3 <<= num4; // num3 等于 40,二进制为 101000
num3 >>= num4; // num3 等于 5
num3 &= num4; // num3 等于 1,二进制为 0001
num3 |= num4; // num3 等于 3,二进制为 0011
num3 ^= num4; // num3 等于 0,二进制为 0000
int? nullableNum1 = null;
int nullableNum2 = nullableNum1 ?? 0; // nullableNum2 等于 0
```mathematica
以上就是 C# 运算符的简介和示例代码。了解这些运算符的使用和优先级可以帮助您更好地编写 C# 程序。
上次更新: 2023/04/26, 22:10:06