C# 操做符

C#的精彩世界还离不开其提供的丰富的操做符,按照操做数的个数,C#操做符可分为如下几类:测试

  • 一元操做符 :++x,x++,--y,z--ui

  • 二元操做符:x+y,x-y,x*yspa

  • 三元操做符:x=(x>a?x:a);3d

若是从操做符的做用来看,C#操做符能够分为赋值操做符,算术操做符,关系操做符,逻辑操做符,位操做符和其它操做符。blog

1.赋值操做符ci

赋值操做符除基本的赋值操做符“=”以外还包括如下的组合赋值操做符:v8

  • +=    如:int x;  x+=5; 至关于:x=x+5;
  • -=     如:int y,z=4; y-=z;  至关于:y=y-z;
  • *=     如:double x,y = 2.3; x*=y;至关于:x=x*y;
  • /=     如:  int x,y;int a=5; y=3;  x/=y+a;至关于:x=x/(y+a);
  • %=   如: int y,x=12; y%=x; 至关于:y=y%x;
  • >>=  如: int y=16; y>>=2;至关于:y=y>>2;
  • <<=  如: int a=32; a<<=3;至关于:a=a<<3;
  • ^=     如: int a=32;a^=2;  至关于:a=a^2;

要注意的是,对于复合的赋值操做符,中间不运许有空格,不然程序将会报错。字符串

关于赋值操做符的运用下面给出一个综合的例子:get

using System;it

class ComOp
       {
                public static void Main()
                {
                       int x=5,y=13;
                       x -= y+3;
                       Console.WriteLine("x={0}",x);

                 double d1 = 10.5;
                        int d2=2;
                        d1*=d2+2;
                        Console.WriteLine("d1={0}",d1);

                  int a=16;
                         a>>=2;
                        Console.WriteLine("a={0}",a);
                 }
         }

运行结果以下:

C中的操做符 - KingLong - 翔宇亭—KingLongs Blog

注意:符合赋值操做符右边值的数据类型必须与左边值得数据类型相同或可以进行隐式转换,不然会出错。

2.算术操做符

C#为咱们提供了5种算术操做符:

  • 加法操做符(+)
  • 减法操做符(-)
  • 乘法操做符(*)
  • 除法操做符(/)
  • 求余操做符(%)

对于+,-,*,/,你们都不陌生,下面只说一说求余操做符%。

在C#中,%不只能够对于整数求余数,对小数一样能够求余数。如 5%3=2,3.2%2=1.2,5%1.5=0.5。

下面给出一个综合例子来讲一下算术操做符的用法:

using System;

class AriOp
       {
                   static void Main()
                   {
                           int i;
                           i = 10/5;
                           Console.WriteLine("i=10/5={0}",i);
                           i = 13/5;
                           Console.WriteLine("i=13/5={0}",i);
                           i = 33/44;
                           Console.WriteLine("i=33/44={0}",i);

                    int a=13,b=11;
                          Console.WriteLine("a%b={0}",a%b);
                          double d1=12.3,d2=1.4;
                          Console.WriteLine("d1%d2={0}",d1%d2);
                  }
       }

运算结果以下:

C中的操做符 - KingLong - 翔宇亭—KingLongs Blog

3.关系操做符

关系操做符,即比较操做符,是用于比较两个值大小或相等的。其结果应该是一个逻辑值“真”或“假”。C#中的的关系操做符主要有如下几种:

  • ==   比较等于
  • !=   不等于
  • <    小于
  • >    大于
  • <=  小于等于
  • >=   大于等于

在书写组合操做符时要注意,两个字符之间不容许有空格,不然系统没法识别,而出错

对于布尔类型、引用类型和字符串类型,只能使用==和!=两个关系操做符,即无大小之分,只有是否相等和不相等之分。下面举一个例子说明其用法:

using System;

class ComOp
       {
             static void Main()
              {
                     int a=23,b=19;
                     bool b1=false,b2=true,b3=false;
                     double x=7E+3,y=0.0001;
                     char ch='x';
                    Console.WriteLine("a<b+4:{0}",a<b+4);
                    Console.WriteLine("(b1&&b3)!=b2:{0}",(b1&&b3)==b2);
                    Console.WriteLine("(b1&&b2)==b3:{0}",(b1&&b2)==b3);
                    Console.WriteLine("x<y*1000:{0}",x<y*1000);
                    Console.WriteLine("ch-32=='X'-'A'+65:{0}",ch-32=='X'-'A'+65);
              } 
       }

运行结果以下:

C中的操做符 - KingLong - 翔宇亭—KingLongs Blog

4.逻辑操做符

逻辑操做符用于两个布尔值之间。C#提供了3种逻辑操做符:

&&   表示逻辑“与”的关系,二元操做符;

||      表示逻辑“或”的关系,二元操做符;

!      表示逻辑“非”的关系,一元操做符;

它们之间的运算关系能够用真值表来表示。假设,x和y是两个布尔值,它们的初始值和运算结果以下表:

 

 x

y

x&&y

x||y

!x 

 false

false

false

false

true

 flase

true

false

true

true

 true

 false

 false

 true

 fasle

 true

 true

 true

 true

 false

下面给出一个简单的例子,测试一下逻辑操做符的使用方法:

 C中的操做符 - KingLong - 翔宇亭—KingLongs Blog

运行结果以下:

C中的操做符 - KingLong - 翔宇亭—KingLongs Blog

5.条件操做符

C#中惟一的一个三元操做符为:?:,即条件操做符。他要求每个操做数都必须是一个能够隐式转换成bool类型的表达式,其运用形式以下:

     表带式1?表达式2:表达式3;

其先运算表达式1,若是表达式1的值为true,则计算表达式2,运算结果为表达式2的值;若表达式1的值为false,则运算表达式3,运算结果为表达式3的值。

下面给出一个例子:

C中的操做符 - KingLong - 翔宇亭—KingLongs Blog

其运算结果为:

C中的操做符 - KingLong - 翔宇亭—KingLongs Blog

咱们也能够运用三元操做符来实现求两个值的大小:

C中的操做符 - KingLong - 翔宇亭—KingLongs Blog

其运行结果为:

C中的操做符 - KingLong - 翔宇亭—KingLongs Blog

6.位操做符

咱们知道,任何信息在计算机中都是以二进制的形式保存的。位操做符就是对数据按二进制进行运算的操做符。C#语言中的位操做符有:

  • &    与
  • |     或
  • ^    异或
  • ~   取补
  • <<  左移
  • >>  右移

其中,取补只有一个操做数,而其它的位操做符都有两个操做数。这些运算都不会产生溢出。位操做符的操做数为整型或者是能够转换为整型的任何其它类型。

(1)& 与操做符

&操做符的操做数按二进制进行与运算,其规则为:

0&0=0
       0&1=0
       1&0=0
       1&1=1

即,除了两个位均为1时,与运算结果为1外,其它任何状况下与运算结果均为0。好比,3和9进行与运算:

3的二进制表示: 00000011

9的二进制表示:  00001001

与运算结果:       00000001

即,3&9的结果为1。

(2)| 或操做符

或操做符的操做数按二进制位进行或运算,其规则为:

0|0=0
       0|1=1
       1|0=1
       1|1=1

即,除了两个位均为0时,或运算结果为0外,其它状况下或运算结果均为1。好比,3和9进行或运算:

3的二进制表示: 00000011

9的二进制表示:  00001001

或运算结果:        00001011

即,3|9的结果为11。

(3)^ 异或操做符

异或操做符的操做数按二进制位进行异或运算,其运算规则为:

0^0=0
       0^1=0
       1^0=0
       1^1=1

能够看出,当两个位相同时,异或运算结果为0;不相同时异或运算结果为1。如3和9进行异或运算:

3的二进制表示: 00000011

9的二进制表示:  00001001

异或运算结果:    00001010

即,3^9的结果为10。

(4)~ 取补操做符

取补操做符对操做数的每一位取补,如对9取补结果为:

9的二进制表示:00001001

取补运算结果:  11110110

(5)移位操做符

左移操做将操做数按位左移,高位被丢弃,低位顺序补0。好比12的二进制为00001100,左移一位为00011000(24),左移二位为00110000(48)。

右移操做时,若是操做数x是int或long类型时,x的低位被丢弃,其它各位顺序依次右移,若是x是非负数,最高位设为零;若是x为负数,则最高位设为1。而当x为uint或ulong类型时,x的低位将被丢弃,其它各位顺序依次右移,高位设为0。

下面简单举个例子来讲明以上各位操做符的用法:

using System;

class Bit
      {
             static void Main()
             {
                  int a = 3,b = 9;
                  Console.WriteLine("a={0},b={1}",a,b);

           Console.WriteLine("\n演示与操做符..."); 
                  Console.WriteLine("a&b={0}",a&b);
  
                  Console.WriteLine("\n演示或操做符...");  
                  Console.WriteLine("a|b={0}",a|b);
                  Console.WriteLine("-2|2={0}",-2|2);

           Console.WriteLine("\n演示异或操做符...");
                  Console.WriteLine("a^b={0}",a^b);

           Console.WriteLine("\n演示取补操做符...");
                  Console.WriteLine("~a={0},~b={1}",~a,~b);
                  Console.WriteLine("~16={0},~-16={1},~16u={2}",~16,~-16,~16u);

           Console.WriteLine("\n演示移位操做符...");
                  Console.WriteLine("a<<1={0},a<<2={1}",a<<1,a<<2);
                  Console.WriteLine("b>>1={0},b>>2={1}",b>>1,b>>2);
                  Console.WriteLine("a<<10={0},b>>10={1}",a<<10,b>>10);
                  Console.WriteLine("12u>>2={0}",12u>>2);

     }
       }

运算结果以下

C中的操做符 - KingLong - 翔宇亭—KingLongs Blog

相关文章
相关标签/搜索