C#中的運算子和運算式

來源:互聯網
上載者:User

標籤:

說起C#運算子和運算式,小夥伴們肯定以為很簡單,其實要用好運算式,不是一件容易的事。一個好的運算式可以讓你做事半功倍的效果,比如三元運算式,可以讓你少寫N多個if和case語句。         

運算式 由 運算元(operand) 和 運算子(operator) 構成 

1.運算子分類和優先順序

2.運算子按運算元目分類

一元運算子

-x  x++  x--

二元運算子

x+y  x+1

三元運算子

c ? x : y 

3.運算式分類

按運算子數目可分為:一元運算式,二元運算式,三元運算式

   按用途分類:Regex、Lambda運算式等等。

要點: 

1.   / 除法運算子  5/2=2   (並非四捨五入,而是捨去小數)

 2.   %模數運算子  5%2=1  5.0%2.2=0.6 (第2數整除第1數的餘數)

 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

數值運算舉例

按位異或的3個特點:

(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的第2位和第3位翻轉,則可以將該數與00000110進行按位異或運算。

  0100001^00000110 = 10100111

(2) 實現兩個值的交換,而不必使用臨時變數。

例如交換兩個整數a=10100001,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#中會先執行一次隱式轉換

 

C#中的運算子和運算式

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.