C#中的位操作小结

时间:2023-08-07 07:01:29 

位操作符是对数据按二进制位进行运算的操作符。位操作是其他很多语言都支持的操作,如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#
0
投稿

猜你喜欢

  • 浅析Java常用API(Scanner,Random)匿名对象

    2023-05-04 09:42:39
  • 浅析C#中的Main(String[] args)参数输入问题

    2023-08-13 01:45:58
  • Java如何基于command调用openssl生成私钥证书

    2023-08-09 11:55:39
  • springcloud注册hostname或者ip的那些事

    2022-05-06 00:57:37
  • Android 调用系统照相机拍照和录像

    2023-10-30 05:40:35
  • Android 中 viewpager 滑动指示器的实例代码

    2022-06-30 19:43:06
  • Maven中的SnapShot版本和正式版本的区别

    2023-11-03 16:31:46
  • Seata AT模式TM处理流程图文示例详解

    2022-05-03 02:28:39
  • c#定时器使用示例详解

    2022-01-09 03:31:05
  • 详谈Java中net.sf.json包关于JSON与对象互转的坑

    2023-03-02 12:38:31
  • 纯注解版spring与mybatis的整合过程

    2022-12-14 00:25:06
  • 详解Android应用main函数的调用

    2021-09-30 12:01:19
  • 使用IntelliJ IDEA搭建SSM框架的图文教程

    2022-06-14 00:56:19
  • C++ 双向循环链表类模版实例详解

    2022-10-29 18:04:49
  • c# SendMail发送邮件实例代码

    2023-03-13 11:17:21
  • Java使用poi操作excel实例解析

    2022-01-26 00:15:41
  • C# Bitmap 复制的小例子

    2023-01-19 12:49:39
  • Android禁止横屏竖屏切换的有效方法

    2023-05-05 10:56:16
  • Java运算符的知识点与代码汇总

    2022-12-05 19:03:36
  • Android利用GridView实现单选效果

    2022-08-12 03:31:50
  • asp之家 软件编程 m.aspxhome.com