C#入门系列 -- 运算符
【摘要】
在C#中,运算符是术语或符号,用以表明数值或者表达式的运算规则。运算符所操作的数值或表达式称为操作数。
一,运算符概念
在C#中,运算符是术语或符号,用以表明数值或者表达式的运算规则。
运算符所操作的数值或表达式称为操作数。
接受一个操作数的运算符称作一元运算符,例如取负运算符-、自增运算符++。
接受两个操作数的运算符称作二元运算符,例如算术运算符+、-、*、/。
条件运算符?:接受三个操作数,是C#中唯一的三元运算符。
C#运算符对操作数的形式和数据类型都有要求,
如二元运算符一般要求其两个操作数类型相同,或两个操作数类型能隐式转换为同一类型、逻辑运算的操作数只能为bool类型等。
根据运算的类型,可把运算符分为:
- 算术运算符
- 赋值运算符
- 关系运算符
- 逻辑运算符
- 位运算符
- 其他运算符
二,算数运算符
算数运算符包括:+,-,x,/,%,++,–
运算符 | 描述 | 实例 |
---|---|---|
+ | 把两个操作数相加 | 10 + 20 结果: 30 |
- | 从第一个操作数中减去第二个操作数 | 10 - 20 结果: -10 |
* | 把两个操作数相乘 | 10 * 20 结果: 200 |
/ | 分子除以分母 | 20 / 10 结果: 2 |
% | 取模运算符,整除后的余数 | 20 % 10 结果: 0 |
++ | 自增运算符,整数值增加 1 | 10++ 结果: 11 |
– | 自减运算符,整数值减少 1 | 10-- 结果: 9 |
三,赋值运算符
运算符 | 描述 实例 |
---|---|
= | 简单的赋值运算符,把右边操作数的值赋给左边操作数 |
+= | 加且赋值运算符,把右边操作数加上左边操作数的结果赋值给左边操作数 |
-= | 减且赋值运算符,把左边操作数减去右边操作数的结果赋值给左边操作数 |
*= | 乘且赋值运算符,把右边操作数乘以左边操作数的结果赋值给左边操作数 |
/= | 除且赋值运算符,把左边操作数除以右边操作数的结果赋值给左边操作数 |
%= | 求模且赋值运算符,求两个操作数的模赋值给左边操作数 |
<<= | 左移且赋值运算符 |
>>= | 右移且赋值运算符 |
&= | 按位与且赋值运算符 |
^= | 按位异或且赋值运算符 |
= | 按位或且赋值运算符 |
示例:
class Program
{
static void Main(string[] args)
{
int a = 21;
int b;
b = a;
Console.WriteLine(" = b 的值 = " + b);
//输出: = b 的值 = 21
b += a;
Console.WriteLine(" += b 的值 = " + b);
//输出: += b 的值 = 42
b -= a;
Console.WriteLine(" -= b 的值 = " + b);
//输出: -= b 的值 = 21
b *= a;
Console.WriteLine(" *= b 的值 = " + b);
//输出: *= b 的值 = 441
b /= a;
Console.WriteLine(" /= b 的值 = " + b);
//输出: /= b 的值 = 21
b = 200;
b %= a;
Console.WriteLine(" %= b 的值 = " + b);
//输出: %= b 的值 = 11
b <<= 2;
Console.WriteLine(" <<= b 的值 = " + b);
//输出: <<= b 的值 = 44
b >>= 2;
Console.WriteLine(" >>= b 的值 = " + b);
//输出: >>= b 的值 = 11
b &= 2;
Console.WriteLine(" &= b 的值 = " + b);
//输出: &= b 的值 = 2
b ^= 2;
Console.WriteLine("^= b 的值 = " + b);
//输出: ^= b 的值 = 0
b |= 2;
Console.WriteLine("|= b 的值 = " + b);
//输出: |= b 的值 = 2
Console.ReadLine();
}
}
四,关系运算符
运算符 | 描述 |
---|---|
== | 检查两个操作数的值是否相等,如果相等则条件为真。 |
!= | 检查两个操作数的值是否相等,如果不相等则条件为真。 |
> | 检查左操作数的值是否大于右操作数的值,如果是则条件为真。 |
< | 检查左操作数的值是否小于右操作数的值,如果是则条件为真。 |
>= | 检查左操作数的值是否大于或等于右操作数的值,如果是则条件为真。 |
<= | 检查左操作数的值是否小于或等于右操作数的值,如果是则条件为真。 |
五,逻辑运算符
运算符 | 描述 |
---|---|
&& | 称为逻辑与运算符。如果两个操作数都非零,则条件为真。 |
|| | 称为逻辑或运算符。如果两个操作数中有任意一个非零,则条件为真。 |
! | 称为逻辑非运算符。用来逆转操作数的逻辑状态。如果条件为真则逻辑非运算符将使其为假。 |
六,位运算符
位运算符
位运算符作用于位,并逐位执行操作。&、 | 和 ^ 的真值表如下所示:
运算符 | 描述 | 实例 |
---|---|---|
& | 如果同时存在于两个操作数中,二进制 AND 运算符复制一位到结果中。 | |
| | 如果存在于任一操作数中,二进制 OR 运算符复制一位到结果中。 | |
^ | 如果存在于其中一个操作数中但不同时存在于两个操作数中,二进制异或运算符复制一位到结果中。 | |
~ | 按位取反运算符是一元运算符,具有"翻转"位效果,即0变成1,1变成0,包括符号位。 | |
<< | 二进制左移运算符。左操作数的值向左移动右操作数指定的位数。 | |
>> | 二进制右移运算符。左操作数的值向右移动右操作数指定的位数。 |
示例:
class Program
{
static void Main(string[] args)
{
int a = 60; // 60 = 0011 1100
int b = 13; // 13 = 0000 1101
int c = 0;
c = a & b; //结果:12 = 0000 1100
Console.WriteLine(" & 结果是: " + c);
c = a | b; //结果:61 = 0011 1101
Console.WriteLine(" | 结果是: " + c);
c = a ^ b; //结果:49 = 0011 0001
Console.WriteLine(" ^ 结果是: " + c);
c = ~a; //结果: -61 = 1100 0011
Console.WriteLine(" ~ 结果是: " + c);
c = a << 2; //结果:240 = 1111 0000
Console.WriteLine(" << 结果是: " + c);
c = a >> 2; //结果:15 = 0000 1111
Console.WriteLine(" >> 结果是: " + c);
Console.ReadLine();
}
}
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)