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

相關文章
相關標籤/搜索