位運算符除按位與、按位或運算符外,其它只能用於處理整數的操做。位運算是徹底針對位方面的操做。算法
一、「按位與」運算ide
「按位與」運算的運算符爲「&」,「按位與」運算的運算法則是:若是兩個整型數據a、b對應爲都是1,則結果位纔是1,不然爲0。若是兩個操做數的精度不一樣,則結果的精度與精度高的操做數相同。ui
二、「按位或」運算spa
「按位或」運算的運算符是「|」,「按位或」運算的運算法則是:若是兩個操做數對應爲都是0則結果是0,不然爲1。若是兩個操做數的精度不一樣,則結果的精度與精度高的操做數相同。內存
三、「按位取反」運算it
「按位取反」運算也稱按位「非」運算,運算符爲「~」,爲單目運算符。「按位取反」運算就是將操做數二進制中的1修改成0,0修改成1。編譯
四、「按位異或」運算符class
「按位異或」運算符是「^」,「按位異或」運算的運算法則是:當兩個操做數的二進制表示相同(同爲0或同爲1),結果爲0,不然爲1。若兩個操做數精度不一樣,則結果數的精度與精度高的操做數相同。語法
五、能夠對數據按二進制位進行移位操做。C#中的移位運算符有如下兩種。<<:左移。>>右移。二進制
對於x<<n或x>>n形式的運算,含義是將x向左或向右移動n位,獲得的結果類型與x相同。在此處,x的類型只能是int、uint、long或ulong,n的類型只能是int,或者顯示轉換爲這些類型之一,不然,編譯程序的時候,會出現語法錯誤。具體執行時,左移就是將左邊的操做數在內存中的二進制數據左移右邊操做數指定的位數,右邊移空的部分補零。右移則複雜一些,當使用「>>」符號時,若是高位時0,左移空的位就輸入0;若是最高位是1,左移空的位就輸入1。
移位能夠實現整數除以或乘以2的n次方的效果。