C#中幾個不常用的操作符

來源:互聯網
上載者:User
  由於剛進公司沒多久和同事們共同開發一個項目,回到家裡也沒沒怎麼學習,也不知道要寫點什嗎?安裝了VISTA,在有些功能上還不懂的用,今天無聊中想起了一些操作符,但是真的忘記了它是怎麼算的了。看了一下感覺感覺,本文大部分內容和例子來自於MSDN,只是為了你後好找把它弄過啦,由於我還沒有裝MSDN上線上的很慢鬱悶。

  加減乘除不用講了,中國人都會;&&,!=,<,>,等也差不多經常用到,今天來看看主要的幾個二進位計算的操作符:

  ~ 運算子對運算元執行按位求補運算,其效果相當於反轉每一位。按位求補運算子是為 int、uint、long 和 ulong 類型預定義的。不用多說例子很重要啊,看了就明白了: 1 // cs_operator_bitwise_compl.cs
 2 using System;
 3 class MainClass
 4 {
 5     static void Main() 
 6     {
 7         int[] values = { 0, 0x111, 0xfffff, 0x8888, 0x22000022};
 8         foreach (int v in values)
 9         {
10             Console.WriteLine("~0x{0:x8} = 0x{1:x8}", v, ~v);
11         }
12     }
13 }

  輸出的結果:~0x00000000 = 0xffffffff
~0x00000111 = 0xfffffeee
~0x000fffff = 0xfff00000
~0x00008888 = 0xffff7777
~0x22000022 = 0xddffffdd

  & 運算子既可作為一元運算子也可作為二元運算子。

  一元 & 運算子返回運算元的地址(要求 unsafe 上下文)。為整型和 bool 類型預定義了二進位 & 運算子。對於整型,& 計算運算元的邏輯按位“與”。對於 bool 運算元,& 計算運算元的邏輯“與”;也就是說,若且唯若兩個運算元均為 true 時,結果才為 true。& 運算子計算兩個運算子,與第一個運算元的值無關。

 1 // cs_operator_ampersand.cs
 2 using System;
 3 class MainClass
 4 {
 5     static void Main() 
 6     {
 7         Console.WriteLine(true & false); // logical and
 8         Console.WriteLine(true & true);  // logical and
 9         Console.WriteLine("0x{0:x}", 0xf8 & 0x3f);  // bitwise and
10     }
11 } 

 

  輸出結果:False
True
0x38

 
  二元 | 運算子是為整型和 bool 類型預定義的。對於整型,| 計算運算元的按位“或”結果。對於 bool 運算元,| 計算運算元的邏輯“或”結果;也就是說,若且唯若兩個運算元均為 false 時,結果才為 false。 1 // cs_operator_OR.cs
 2 using System;
 3 class MainClass
 4 {
 5     static void Main() 
 6     {
 7         Console.WriteLine(true | false);  // logical or
 8         Console.WriteLine(false | false); // logical or
 9         Console.WriteLine("0x{0:x}", 0xf8 | 0x3f);   // bitwise or
10     }
11 }

  輸出結果:1 True
2 False
3 0xff

  今天先看看這三個操作符,當然他們有~=,&=,|=操作符,大家也知道他們的意思。從上面的三個例子可以看出~按位求補基本上也就是不足16(16進位)的用F減去自身來替代自身的數字就OK了。int類型的數字在記憶體中為32位,也就是說每一個數字不過32位的前面加0然後求補。對於&比較多的功能,首先它可以是不安全的程式碼指標,記憶體位址的引用,不知道是不是這樣說的,其次可以是二進位的按位與位元上全是1時才為1,其他為0;如果是邏輯與全為true時才為true,其他為false。而對|操作符來說,只要有一個1就為1,只要有一個為true就為true,除非全是0或false時才是0和false。OK有了這些我們就知道怎樣來計算了(在許可權中應用是不錯的)。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.