C 中的位運算

2021-09-12 01:14:20 字數 1113 閱讀 4886

程式中的所有數在計算機記憶體中都是以二進位制的形式儲存的。位運算就是直接對整數在記憶體中的二進位制位進行操作。

在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進行位邏...