首 页IT知识库收藏内容
当前位置:翔宇亭IT乐园IT知识库C#文件操作

在C#中进行位操作

减小字体 增大字体 作者:不详  来源:cnblogs.com  发布时间:2011-02-09 14:00:42

位操作符是对数据按二进制位进行运算的操作符。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
  }

}

http://www.cnblogs.com/top5/archive/2011/01/31/1948245.html


本文源自:翔宇亭——IT乐园(http://www.biye5u.com),转载请保留此信息!

微信搜索“优雅的代码”关注本站的公众号,或直接使用微信扫描下面二维码关注本站公众号,以获取最新内容。

个人成长离不开各位的关注,你的关注就是我继续前行的动力。

知识评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
愿您的精彩评论引起共鸣,带来思考和价值。
用户名: 查看更多评论
分 值:100分 90分 80分 70分 60分 40分 20分
内 容:
验证码:

相关文章

关于本站 | 网站帮助 | 广告合作 | 网站声明 | 友情连接 | 网站地图
本站部分内容来自互联网,如有侵权,请来信告之,谢谢!
Copyright © 2007-2024 biye5u.com. All Rights Reserved.