欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#中的位操作小結(jié)

 更新時(shí)間:2014年01月15日 09:05:35   作者:  
在C#中位操作同C的位操作沒(méi)有什么區(qū)別,位操作的速度相對(duì)較快,而且如果熟練的話(huà),處理起來(lái)也相對(duì)方便,特別是在一些權(quán)限等相關(guān)的設(shè)置中

位操作符是對(duì)數(shù)據(jù)按二進(jìn)制位進(jìn)行運(yùn)算的操作符。位操作是其他很多語(yǔ)言都支持的操作,如C、C++和Java等,C#也不例外支持位操作。注意位操作支持的數(shù)據(jù)類(lèi)型是基本數(shù)據(jù)類(lèi)型,如byte、short、char、int、long等,C#支持的位操作有如下幾種:

•按位與 &
•按位或 |
•按位取反 ~
•左移 <<
•右移 >>
•異或^

在C#中位操作同C的位操作沒(méi)有什么區(qū)別,位操作的速度相對(duì)較快,而且如果熟練的話(huà),處理起來(lái)也相對(duì)方便,特別是在一些權(quán)限等相關(guān)的設(shè)置中,比如:用1、2、4、8、16、32、64分別代表查看、添加、編輯、修改、刪除、審批等權(quán)限值的時(shí)候,如果某個(gè)用戶(hù)的最終權(quán)限是多種權(quán)限值的疊加,用位操作來(lái)判斷是否具有某種權(quán)限是相當(dāng)方便的了。

舉例說(shuō)明:

復(fù)制代碼 代碼如下:

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的二進(jìn)制形式:  00000001
         * 2的二進(jìn)制形式:  00000010
         * 4的二進(jìn)制形式:  00000100
         * 8的二進(jìn)制形式:  00001000
         * 16的二進(jìn)制形式: 00010000
         * 32的二進(jìn)制形式: 00100000
         * 64的二進(jìn)制形式: 01000000
         * 126的二進(jìn)制形式:01111110
         */
        for (int i = 0; i < power.Length; i++)
        {
            if ((value & power[i]) != 0)
            {
                Console.WriteLine("有power[{0}]={1}所代表的權(quán)限", 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();
    }
}

相關(guān)文章

最新評(píng)論