C#中的位操作

來源:互聯網
上載者:User

  位操作符是對資料按二進位位進行運算的操作符。位操作是其他很多語言都支援的操作,如C、C++和Java等,C#也不例外支援位操作。注意位操作支援的資料類型是基礎資料型別 (Elementary Data Type),如byte、short、char、int、long等,C#支援的位操作有如下幾種:

  按位與 &

  按位或 |

  按位取反 ~

  左移 <<

  右移 >>

  異或^

  在C#中位操作同C的位操作沒有什麼區別,位操作的速度相對較快,而且如果熟練的話,處理起來也相對方便,特別是在一些許可權等相關的設定中,比如:用1、2、4、8、16、32、64分別代表查看、添加、編輯、修改、刪除、審批等許可權值的時候,如果某個使用者的最終許可權是多種許可權值的疊加,用位操作來判斷是否具有某種許可權是相當方便的了。

  舉例說明:

  using System;

  public class BitAction

  {

  public static void Main(string[] args)

  {

  int[] power = new int[] { 1, 2, 4, 8, 16, 32, 64 };

  int value = 126;

  /*

  * 1的二進位形式: 00000001

  * 2的二進位形式: 00000010

  * 4的二進位形式: 00000100

  * 8的二進位形式: 00001000

  * 16的二進位形式: 00010000

  * 32的二進位形式: 00100000

  * 64的二進位形式: 01000000

  * 126的二進位形式:01111110

  */

  for (int i = 0; i < power.Length; i++)

  {

  if ((value & power[i]) != 0)

  {

  Console.WriteLine("有power[{0}]={1}所代表的許可權", i, power[i]);

  }

  }

  Console.WriteLine("按位與:126&4={0}", value & 4);

  Console.WriteLine("按位或:126|4={0}", value | 4);

  Console.WriteLine("左移:126<<4={0}", value << 4);

  Console.WriteLine("右移:126>>4={0}", value >> 4);

  Console.WriteLine("異或:126^4={0}", value ^ 4);

  Console.WriteLine("按位取反:~126={0}", ~value);

  Console.ReadLine();

  }

  }

相關文章

聯繫我們

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