运算符
C#--赋值运算符
=
+=
-=
*=
/=
// 声明一个变量,对这个变量的赋值为10.
int a = 10;
/* a += 10相当于a = a + 10;可以先看赋值运算符的右边,
* a的值在上一步已经为10,而a + 10等于20,然后将得到的20赋予a,a经过+=后的值就是20.*/
a += 10;
// 其余都与+=相同
C#--算数运算符
+
-
*
/
%
%
是对一个数取余的,其他和数学中的运算符号意思相同
C#--比较运算符
==
!=
>=
<=
>
<
==
表示相等,!=
表示不相等,其余与数学中的符号相同,返回值都是bool
。一般用于条件判断。
C#--逻辑运算符
&&
与 全为真则真,否则假||
或 全为假则假,否则真!
非 真则假,假则真
C#--特殊运算符
i++
++i
i--
--i
i++
先赋值再自增,++i
先自增再赋值。
C#--位运算
&
与|
或^
异或~
取反
位运算是针对于二进制的运算
假设如果 a = 60,且 b = 13,求 a&b,a|b,a^b,~a;
- 将十进制转换成二进制 a = 0011 1100,b = 1101。
a | b | a&b | a丨b | a^b | ~a |
---|---|---|---|---|---|
0 | 0 | 0 | 0 | 0 | 1 |
0 | 0 | 0 | 0 | 0 | 1 |
1 | 0 | 0 | 1 | 1 | 0 |
1 | 0 | 0 | 1 | 1 | 0 |
1 | 1 | 1 | 1 | 0 | 0 |
1 | 1 | 1 | 1 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 1 |
0 | 1 | 0 | 1 | 1 | 1 |
- a&b = 0000 1100
- a|b = 0011 1101
- a^b = 0011 0001
- ~a = 1100 0011
可以将1看做真,0看做假。&两者都为真为真,否则为假。|两者都为假为假,否则为真。^两者不同为真,相同为假。~是对一个二进制数据做处理,真的为假,假的为真。
a = 0000 1100,b = 0011 0011,求:a<<2,b>>2。
a<<2
->0011 0000
左移两位,在末尾添加两个零b>>2
->0000 1100
右移两位,在末尾划去两位
C#--三目运算符
// 声明一个int类型的变量,并赋值
int numA = 122;
// 声明一个int类型的变量,并赋值
int numB = 234;
// 声明一个bool类型的变量,判断numA和numB是否相等,二者若是相等res的值为true,否则为false。
bool res = numA == numB ? true : false;
相当于
if……else……
的简写。
赋值运算符2
%=
<<=
>>=
|=
&=
int a = 10;
a <<= 2;
C#--短路问题
int num1 = 10;
int num2 = 5;
// 与短路
bool result = ++num1 == 10 && ++num2 > 1;
// num1=11、num2=5,11等于10逻辑不成立,后面逻辑不执行
Console.WriteLine("num1:{0},num2:{1}", num1, num2);
// 或短路
bool result2 = ++num1 != 5 || ++num2 > 1;
// num1=12、num2=5,12大于5逻辑成立,后面逻辑不执行
Console.WriteLine("num1:{0},num2:{1}", num1, num2);
与短路:若是前面不符合条件,后面的结果无论是否符合,都不会影响返回的结果,故后面的逻辑不会执行。
或短路:若是前面符合条件,后面的结果无论是否符合,都不会影响返回的结果,故后面的逻辑不会执行。
本文来自博客园,作者:坞中客,转载请注明原文链接:https://www.cnblogs.com/wuzhongke/p/16815120.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?