运算符

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;

  1. 将十进制转换成二进制 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);

与短路:若是前面不符合条件,后面的结果无论是否符合,都不会影响返回的结果,故后面的逻辑不会执行。
或短路:若是前面符合条件,后面的结果无论是否符合,都不会影响返回的结果,故后面的逻辑不会执行。

posted @   坞中客  阅读(60)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示