国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

在C#中進行位操作

2023-05-15 12:29:34
字體:
來源:轉載
供稿:網友

位操作符是對數據按二進制位進行運算的操作符。C#位操作支持的數據類型是基本數據類型,如byte、short、char、int、long等,C#支持的位操作有如下幾種:

(1)按位與 & 

(2)按位或 | 

(3)按位取反 ~ 

(4)左移 << 

(5)右移 >>

(6)異或^

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

 

using System;
/*
 * 作者:周公
 * 說明:本程序用以說明在C#中如何進行位操作。
 * 日期:2007-09-17
 * 
*/

public class BitAction
{
    
public static void Main(string[] args)
    
{
        
int[] power = new int[] 1248163264 };
        
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();
    }

}


運行結果:

   

//舉例說明
using System;
class MikeCat
{
public static void Main()
{
int a=6&3;
Console.WriteLine(
"a={0}",a);
//6的二進制是00000110,3的二進制是00000011,按位與后等于00000010,  即2。
    
int b=6|3;
Console.WriteLine(
"b={0}",b);
//6的二進制是00000110,3的二進制是00000011,按位或后等于00000111,即7

int c=~6;
Console.WriteLine(
"c={0}",c);
//6的二進制是00000110,按位取反后是11111001即-7

int d=6^3;
Console.WriteLine(
"d={0}",d);
//6的二進制是00000110,3的二進制是00000011,按位異或后等于00000101,即5

int e=6<<3;
Console.WriteLine(
"e={0}",e);
//6的二進制是00000110,左移三位后等于00101000,即48

int f=6>>2;
Console.WriteLine(
"f={0}",f);
//6的二進制是00000110,右移二位等于00000001,即1
  }

}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 云南省| 通许县| 伊川县| 顺义区| 永清县| 济源市| 镇康县| 汪清县| 曲水县| 成安县| 乐安县| 峡江县| 遂宁市| 茌平县| 彰武县| 皮山县| 延安市| 信阳市| 宝应县| 平利县| 福安市| 宝兴县| 台中市| 东海县| 玉溪市| 凉山| 汉沽区| 南阳市| 谢通门县| 鄂温| 彭泽县| 新宁县| 阿坝| 资溪县| 甘洛县| 鄯善县| 北宁市| 清涧县| 富民县| 合山市| 马尔康县|