iT邦幫忙

1

C#學習筆記4:C#的基本運算

這是我一邊學習一邊寫下的筆記,如果內容有錯,懇請在下方留言跟我說,我會非常感謝的!!!

基本運算

一個運算式要由運算元與運算子組成

https://ithelp.ithome.com.tw/upload/images/20210410/20136522i9YWUQvsA1.png

  • C#提供3種運算方式:
  1. 算術運算 2. 關係運算 3. 邏輯運算
  • 所以運算子根據其功能也有需多的區分:
  1. 算術運算子
  2. 關係運算子
  3. 邏輯運算子
  4. 複合指定運算子
  5. 位元運算子

算術運算子

https://ithelp.ithome.com.tw/upload/images/20210410/2013652252yz4SHGkP.png

運算的結果會與變數型別有關係

int a = 5 / 2;
a = 2 
因為變數a的型別int是整數類,C# 會自動省略小數點之後,只留下整數的部分存進變數裡面

string型別也適用於加法(只適用於加法)

string a = "Hello";
string b = " World!";
string c = a + b; 這時string c會儲存Hello World!的字串

接下來要看一個特別的例子
https://ithelp.ithome.com.tw/upload/images/20210410/20136522HN3FvQD7T7.png
這時的MessageBox會顯示
https://ithelp.ithome.com.tw/upload/images/20210410/20136522WEWzCQMLGe.png


關係運算子

https://ithelp.ithome.com.tw/upload/images/20210410/20136522ohN2Rgd44M.png


條件邏輯運算子

https://ithelp.ithome.com.tw/upload/images/20210410/201365222gK0RZUDsi.png

只有一個的|還有&,在進行判斷時,前後兩個運算元都會評估。
兩個的||和&&,在進行判斷時,只有在必要時才會評估右邊的運算元。

舉例來說:
假 & 真:已經知道第一個是假了,&還是會求出前後運算元的值才進行判斷
假 && 真:第一個已經是假了,結果必定為假,&&不用求出右邊運算元的值就會進行判斷

所以在進行判斷時||跟&&是比較有效率的,比較重要的比較值就放前面囉~


複合指定運算子

https://ithelp.ithome.com.tw/upload/images/20210410/20136522tcfPf6NkR7.png

要注意複合指定運算子不包刮遞增(++)及遞減(--)

下面的三個算式結果是一樣的(只有在+1的時候第三條算式才會一樣)

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

位元運算子(2進制)

https://ithelp.ithome.com.tw/upload/images/20210410/201365227cTtXkncVZ.png

元運算子運算之前要先把10位元轉換成2位元

https://ithelp.ithome.com.tw/upload/images/20210410/20136522qZAc5qn30F.png

如果是11就是1011,11 = 8 (3次方) + 2(1次方) + 1(0次方)

再來就套用位元運算子

https://ithelp.ithome.com.tw/upload/images/20210410/20136522nmnI4we5Nb.png

舉例

5^3 =
  0101 5
 ^0011 3
= 0110 6

左移右移

  1. 選擇將位元左移"<<"或是右移">>"N位元
  2. 移動後的值空的位置補0
    以31作範例 (11111)
int x = 31 << 3 就是31*2*2*2 = 248
int x = 31 >> 3 就是31/2/2/2 = 3
左移 1111 1000 = 248
右移 0011 = 3 

參考資料
Day08-C#運算式與運算子(+、-、*、/、>、<....等)-來用C#算數學吧!(上)
Day09-C#運算式與運算子(+、-、*、/、>、<....等)-來用C#算數學吧!(下)
C#基礎


尚未有邦友留言

立即登入留言