程式中的所有數在計算機記憶體中都是以二進位制的形式儲存的。位運算就是直接對整數在記憶體中的二進位制位進行操作。
在c#中可以對整型運算物件按位進行邏輯運算
c#支援的位邏輯運算子如下所示:
1.位邏輯非 ~
是乙個單目運算子,只有乙個運算物件。0變成1,1變成0。例如:二進位制1000 1101 進行位邏輯非運算為:0111 0010,對應十進位制~141等於-142。
正數取反(對應的負數-1),負數取反(對應的正數-1)。例如:~14 =-15 ~(-14)=13
2.位邏輯與&
將兩個物件按位與運算,1與1等於1,1與0等於0, 0與0等於0
比如二進位制:1000 1101 & 0110 1100 等於00001100 對應十進位制:141&108 =12
3.位邏輯或 |
將兩個物件按位或運算,1或0等於1,1或1等於1,0或0等於0
例如二進位制: 1000 1101 | 0110 1100 等於11101101 對應十進位制:141|108=237
4.位邏輯異或^
將兩個物件異或運算,規則: 相同得0,不同得1
例如二進位制: 1000 1101 ^ 0110 1100 等於1110 0001 對應十進位制:141^108=225
5.位左移運算<<
將整個數 按位左移 若干位,空位補0
例如:1000 1101<<3 等於0100 0110 1000 對應十進位制 :141<<3 =1128
這裡要說明一下:當溢位位不為0時,此時要考慮32位。
再如:0011 0110<<2 ,此時溢位位為0,所以就等於 1101 1000 ,對應十進位制:54<<2=216
54<<3 = 0001 1011 0000 對應十進位制:432
負數的左移運算,可以先求對應正數,加上-
6.位右移運算》
位右移運算將整個數按位右移若干位,右移後空出的部分填0
例如:1000 1101>>3 等於0001 0001 對應十進位制 :141>>3 =17
負數右移:先求對應正數右移,取負減1: -141>>3= -18
C 中位運算
1 位邏輯運算子 位 與 and 2個都為1 才是1 0 0 0 0 1 0,1 0 0 1 1 1 位 異或 相同為0,不同為1 0 0 0 1 1 0,1 0 1 1 0 1 位 或 or 有乙個是1 就是1 0 0 0 0 1 1,1 0 1 1 1 1 位 取反 2 移位運算子 左移 右移 ...
C 的位運算
位運算子 按位與 按位或 按位取反 左移 右移 public static void main a 6的二進位制是00000110,3的二進位制是00000011,按位與後等於00000010,即2。int b 6 3 console.writeline b b 6的二進位制是00000110,3的...
c 中的位運算子
位邏輯非運算是單目的,只有乙個運算物件。位邏輯非運算按位對運算物件的值進行非運算,即 如果某一位等於0,就將其轉變為1 如果某一位等於1,就將其轉變為0,對二進位制的10010001進行位邏輯非運算,結果等於01101110。用十進位制表示就是 145等於110 對二進位制的01010101進行位邏...