C#C#中的运算符和表明式

说起C#运算符和表明式,小伙伴们一定觉得很不难,其实要用好表达式,不是一件简单的事。二个好的表明式能够让你工作半功倍的效益,比如三元表明式,能够让您少写N三个if和case语句。
        

表达式 由 操作数(operand) 和 运算符(operator) 构成 

1.运算符分类和先期级

C# 1

2.运算符按操作数目分类

一元运算符

-x  x++  x–

二元运算符

x+y  x+1

三元运算符

c ? x : y 

3.表达式分类

按运算符数目可分为:一元表明式,二元表明式,雅士利表明式

   按用途分类:正则表达式、Lambda表明式等等。

要点: 

1.   / 除法运算符  5/2=2   (并非四舍五入,而是舍去小数)

 2.   %取模运算符  5%2=1  5.0%2.2=0.6 (第贰数整除第①数的余数)

 3.  ++ 递增运算符  —  递减运算符 

     以上多少个运算符 ,能够在前也得以在后, 然则在前和在后,其履行顺序差异 例如:

     int a=1; int b=a++;

     运算符在后,则程序先把a的值赋给b,再对a执行+1;

     其运维结果为: a=2  b=1

     即便写成上面包车型地铁例证:

     int m=1;int n=++m;

     则进行完事后结果为: m=2 n=2;

     实际上相当于 int m=1; m=m+1; int n=m;

4.位移运算符<<(左移)  和 >>(右移)

那七个运算符相比较不常用,按法定的明亮稍有点复杂

能够那样敞亮:其实正是数额转换来二进制的左右平移;

右移左补0,左移右补0,前边多出来的部分去掉。

如:把89右位移一人,能够这么测算:

string flag = Convert.ToString(89, 2); //那是把您的89转为2进制数。。

//flag结果:1011001

//你要右位移,左侧补个0,后边多出去一人去掉

int j = Convert.ToInt32(“0101100”, 2); //再把2进制转化了10进制数。。

//结果:44

//位移正是如此简单 

5.逻辑异或运算符 ^

   对于简易逻辑运算符 & || 大家相比熟知了,但对此异或好三人就  不打听,甚至很少用到

接头那几个运算符,首先它就算是逻辑运算符,但也是能够运算整数的

先说布尔运算,简单说,正是多少个操作数差别,则为真;相同时为假

如:true ^ true=false; false^false=false; true ^false=true; false ^true=true;

操作整数时,则开始展览位运算,如:

100^45=73

数值运算举例

按位异或的1个性情:

(1) 0^0=0,0^1=1  0异或任何数=任何数

(2) 1^0=1,1^1=0  1异或其余数-任何数取反

(3) 1^1=0,0^0=0  任何数异或协调=把团结置0

例如:10100001^00010001=10110000

按位异或的多少个周边用途:

(1) 使某个特定的位翻转

比如对数10100001的第②位和第三个人翻转,则能够将该数与00000110拓展按位异或运算。

  0100001^00000110 = 10100111

(2) 达成三个值的置换,而不要选拔一时半刻变量。

譬如说沟通三个整数a=10一千01,b=00000110的值,可由此下列语句实现:

    a = a^b;   //a=10100111

    b = b^a;   //b=10100001

    a = a^b;   //a=00000110

 

(3) 在汇编语言中时时用来将变量置零:

    xor   a,a

(4) 快捷判断八个值是还是不是等于

举例1: 判断七个整数a,b是不是等于,则可通过下列语句达成:

        return ((a ^ b) == 0)

  1. 字符和字符串运算

鉴于字符能够隐式转为整型,如 ‘a’+6=103  a被转为Unicode 97

‘a’*’b’=9506       相当于 97*98

‘a’>’b’结果为false  相当于97>98 返回false

‘a’ +”早上好”  返回 “a早上好”  

有鉴于此。差别档次运算在C#中会先实施2次隐式转换

 

C# 2

相关文章