C#的位元運算符

來源:互聯網
上載者:User

標籤:style   blog   color   資料   div   sp   log   on   c   

C#的位元運算符&,| ,^ ,<<,>>2008年08月01日 星期五 15:52位 運 算
我們知道任何資訊在電腦中都是以二進位的形式儲存的位操作符就是對數
據按二進位位進行運算的操作符C#語言中的位操作符有

 & 與 | 或 ^ 異或 ~ 取補 << 左移 >> 右移

其中取補只有一個運算元而其它的位操作符都有兩個運算元這些運算都不
會產生溢出位操作符的運算元為整型或者是可以轉換為整型的任何其它類型
與運算
運算元按二進位位進行與運算運算規則為
0&0=0
0&1=0
1&0=0
1&1=1
這說明除了兩個位均為1 與運算結果為1 其它情況下與運算結果均為0 比
如2 和10 進行與運算
2 的二進位表示 00000010
10 的二進位表示 00001010
與運算的結果 00000010
1 所以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
取補運算
取補運算對運算元的每一位取補如對10 取補結果為
10 的二進位表示 00001010
與運算的結果 11110101
這個二進位對應的具體值與資料類型有關下面的例子清楚地說明了這一點
程式清單7-5

using System;class Test{public static void Main() {short a = 10;ushort b = 10;int c = 10;uint d = 10;Console.WriteLine(~10);Console.WriteLine("short: {0}",~a);Console.WriteLine("ushort: {0}",~b);Console.WriteLine("int: {0}",~c);Console.WriteLine("uint: {0}",~d);}}

正確的輸出是
-11
short: -11
ushort: -11
int: -11
uint: 4294967285
移位元運算
左移運算將運算元按位左移高位被丟棄低位順序補0 比如10 的二進位為
00001010 左移一位為00010100 20 左移二位為00101000 40
右移運算時如果運算元x 是int 或long 型 時x 的低位被丟棄其它各位順序
依次右移如果x 是非負數最高位設成零如果x 為負數則最高位設為1 而當x
的類型為uint 或ulong 型時x 的低位將被丟棄其它各位順序依次右移高位設為0
比如
程式清單7-6

using System;class Test{public static void Main() {int x = 16;Console.WriteLine(x);int y = x>>2;Console.WriteLine(y);y = y>>2;Console.WriteLine(y);y = y>>2;Console.WriteLine(y);}}

上面這段程式的輸出為
16
4
1
0
如果把上面x 的初始值設為-16 則程式的輸出為
-16
-4
-1
-1

C#的位元運算符

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.