iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 9
1
Modern Web

C#與ASP.Net入門-我要成為工程師!!系列 第 9

Day09-C#運算式與運算子(+、-、*、/、>、<....等)-來用C#算數學吧!(下)

  • 分享至 

  • xImage
  •  

好的,接續上一篇,我們來看看其他的運算子,以及他們彼此間的優先順序吧!

位元運算子(二進制)

以下運算子會先將運算元換成0和1的二進位制,再做二進位制的布林運算。

運算子 意義 說明
& 且(And) A & B,當A、B都為真時,結果才會為真
| 或(Or) A | B,當A、B其中一個為真時,結果為真
^ XOr(互斥) 當A跟B都是或都是1,結果為0,否則結果為1
~ 非(Not) ~A,取A的二進位制後完全相反

表格如下:

A B A&B A|B A^B ~A
1 1 1 1 0 0
1 0 0 1 1 0
0 1 0 1 1 1
0 0 0 0 0 1

舉例:
https://ithelp.ithome.com.tw/upload/images/20190908/20120055wZaVkIWebX.png

位元運算子內容參考至:Visual C# 2017程式設計經典:https://www.books.com.tw/products/0010765250

移位運算子(二進位制)

運算子 說明
<< 位元左移
>> 位元右移
  1. 把運算元轉換成二進位制
  2. 選擇將位元左移"<<"或是右移">>"N位元
  3. 移動後的值空的位置補0
  4. 補齊之後就是結果

對於非本科的我這實在太抽象也太不直觀,讓我們把二進位叫出來直接看例子:
https://ithelp.ithome.com.tw/upload/images/20190909/201200555YMIcakpwV.png

指定運算子

當需要將某個變數或是運算式的結果指定給某個變數時使用。等號左邊不可為運算式或常數才能夠指定值進去。
運算順序由右而左

運算子 說明 例子
= 把右方指定給左方 a=5;一直在用XD
+= 把左方加右方後再指定給左方 a+=5;->等同於a=a+5的意思常用
-= 把左方減右方後再指定給左方 a-=5;->等同於a=a-5的意思常用
*= 把左方乘右方後再指定給左方 a*=5;->等同於a=a*5的意思常用
/= 把左方除以右方後再指定給左方 a/=5;->等同於a=a/5的意思常用
%= 把左方除以右方取餘數後再指定給左方 a%=5;->等同於a=a%5的意思
^= 把左方作位元的XOR運算後再指定給左方 a^=5;->等同於a=a^5的意思
&= 把左方作位元的AND運算後再指定給左方 a&=5;->等同於a=a&5的意思
|= 把左方作位元的OR運算後再指定給左方 a|=5;->等同於a=a|5的意思
<<= 把左方作位元的左移運算後再指定給左方 a<<=5;->等同於a=a<<5的意思
>>= 把左方作位元的右移運算後再指定給左方 a>>=5;->等同於a=a>>5的意思

條件運算子(三元條件運算子)

條件運算子?:也稱為三元條件運算子,運算後傳回的結果為布林值:True或False
運算順序由右而左

這段敘述是否為真 ? 真的話回傳這個位置的值 : 否的話回傳這個位置的值

舉例一

Min=(a < b)? a:b;//若 a < b是True,Min=a,否則Min = b。

舉例二

a ? b : c ? d : e; //先進行右方的判斷,此行等同於a ? b : (c ? d : e);

運算子優先順序

表格很長,自己重點節錄如下:

  1. 運算順序多是由左而右,除了指定運算子及條件運算子
  2. ()括號優先->乘、除、取餘數->加、減這個記到快爛掉的順序還是管用的
    https://ithelp.ithome.com.tw/upload/images/20190909/20120055WsE5DARU4s.png

C#官方文件內還有其他運算子分類,基礎版就先介紹到這,其他內容可以參考MSDN-運算子

後記:
因為重新整理了運算子,才發現原本以為+-*/那些才是運算子,但其實.、f(x)、array[i]其中的.、()、[]也都是運算子(成員存取運算子),算是一個新領悟,開心!
另外進行到這一天可能會覺得有點繁瑣了,想要跟大家分享一個自己學習的信念

了解基礎,很多問題就會變得比較簡單

基礎穩了,遇到沒碰過的問題才能夠回歸原理去思考,不會那麼容易被打敗=)
所以,沉下心,一起加油吧=)go!


參考資料

MSDN-運算子
Visual C# 2017程式設計經典


上一篇
Day08-C#運算式與運算子(+、-、*、/、>、<....等)-來用C#算數學吧!(上)
下一篇
Day10-用C#算數學!(基本運算、平方、平方根、log、sin)
系列文
C#與ASP.Net入門-我要成為工程師!!31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言