我們知道,任何信息在計算機中都是以二進制的形式保存的。位操作符就是對數據按二進制進行運算的操作符。C#語言中的位操作符有:
● & 與
● | 或
● ^ 異或
● ~ 取補
● << 左移
● >> 右移
其中,取補只有一個操作數,而其它的位操作符都有兩個操作數。這些運算都不會產生溢出。位操作符的操作數為整型或者是可以轉換為整型的任何其它類型。
與運算
操作數按二進制進行與運算,運算規則為:
0&0=0
0&1=0
1&0=0
1&1=1
這說明,除了兩個位均為1,與運算結果為1,其它任何情況下與運算結果均為0。比如,2和10進行與運算:
2的二進制表示: 00000010
10的二進制表示:00001010
與運算結果: 00000010
所以,2&10的結果為2。
或運算
操作數按二進制位進行或運算,運算規則為:
0|0=0
0|1=1
1|0=1
1|1=1
這說明,除了兩個位均為0,或運算結果為0,其它情況下或運算結果均為1。比如,2和10進行或運算:
2的二進制表示: 00000010
10的二進制表示:00001010
或運算結果: 00001010
所以,2|10的結果為10。
異或運算
操作數按二進制位進行異或運算,運算規則為:
0^0=0
0^1=0
1^0=0
1^1=1
這說明,當兩個位相同時,異或運算結果為0;不相同時異或運算結果為1。比如,2和10進行異或運算:
2的二進制表示: 00000010
10的二進制表示:00001010
異或運算結果: 00001000
所以,2^10的結果為8