C#中的位操作小结

 更新时间:2014年01月15日 09:05:35   作者:  
在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();
    }
}

相关文章

  • c# 实现图片查看器

    c# 实现图片查看器

    这篇文章主要介绍了c# 如何实现图片查看器,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • C#连接ODBC数据源的方法

    C#连接ODBC数据源的方法

    这篇文章主要介绍了C#连接ODBC数据源的方法,实例分析了C#连接ODBC操作数据库的技巧,非常具有实用价值,需要的朋友可以参考下
    2015-04-04
  • c#线程间传递参数详解

    c#线程间传递参数详解

    本篇文章主要是对c#中的线程间传递参数进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2014-01-01
  • 实例解析C#设计模式编程中简单工厂模式的使用

    实例解析C#设计模式编程中简单工厂模式的使用

    这篇文章主要介绍了C#设计模式编程中简单工厂模式的使用,文中也举了在.NET框架下简单工厂模式的实现例子,需要的朋友可以参考下
    2016-02-02
  • C#实现属于自己的QQ截图工具

    C#实现属于自己的QQ截图工具

    这篇文章主要为大家详细介绍了C#实现属于自己的QQ截图工具的相关资料,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-04-04
  • WPF通过线程使用ProcessBar的方法详解

    WPF通过线程使用ProcessBar的方法详解

    这篇文章主要给大家介绍了关于WPF通过线程使用ProcessBar的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用WPF具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-04-04
  • C#实现从多列的DataTable里取需要的几列

    C#实现从多列的DataTable里取需要的几列

    这篇文章主要介绍了C#实现从多列的DataTable里取需要的几列,涉及C#针对DataTable操作的相关技巧,需要的朋友可以参考下
    2016-03-03
  • C# memcached缓存使用实例代码

    C# memcached缓存使用实例代码

    这篇文章主要介绍了C# memcached缓存使用实例,大家参考使用
    2013-12-12
  • silverlight实现图片局部放大效果的方法

    silverlight实现图片局部放大效果的方法

    这篇文章主要介绍了silverlight实现图片局部放大效果的方法,结合实例形式分析了silverlight针对图片属性的相关操作技巧,需要的朋友可以参考下
    2017-03-03
  • C#中遍历DataSet数据集对象实例

    C#中遍历DataSet数据集对象实例

    这篇文章主要介绍了C#中遍历DataSet数据集对象实例,经常忘记如何操作DataSet,这里记下来并分享,让需要的朋友可以参考下
    2014-08-08

最新评论