程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 更多關於編程 >> C#中的位操作

C#中的位操作

編輯:更多關於編程

      位操作符是對數據按二進制位進行運算的操作符。位操作是其他很多語言都支持的操作,如C、C++和Java等,C#也不例外支持位操作。注意位操作支持的數據類型是基本數據類型,如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();

      }

      }

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved