• 枚举位预算 (适用于权限和拥有多种枚举值)


    一、基础知识

    1. 什么是位运算?

          用二进制来计算,1&2:这就是位运算,其实它是将0001与0010做位预算   得到的结果是 0011,也就是3

          2.位预算有多少种?(我们就将几种我们权限中会用到的

          &  与运算    1&0=0    1&1=1   0&0=0

          |   或运算    1|1=1     1|0=1    0|0=0

          ~  非运算    ~1=0      ~0=1

    二、如何与权限关联

            1、逻辑是什么?

            其实逻辑很简单,我们将每一位表示一种权限或一种枚举,1010(1代表具有当前位的权限;0代表不具有当前位的权限)

         

     [FlagsAttribute]
        public enum Category
        {
            [Description("动作")]
            Motion = 1,
    
            [Description("喜剧")]
            Comedy = 2,
    
            [Description("爱情")]
            Love = 4,
    
            [Description("科幻")]
            Science = 8,
    
            [Description("奇幻")]
            Queer = 16,
    
            [Description("灾难")]
            Calamity = 32,
    
            [Description("恐怖")]
            Dracula = 64,
    
            [Description("纪录")]
            Documentary = 128,
    
            [Description("犯罪")]
            Crime = 256,
    
            [Description("战争")]
            War = 512,
    
            [Description("冒险")]
            Adventure = 1024,
    
            [Description("动画")]
            Cartoon = 2048,
    
            [Description("剧情")]
            Feature = 4096,
    
            [Description("其他")]
            Other = 8192
        }

               动作:0001    喜剧:0010   依次类推,每个枚举值必须是2的n次方

           2、如何做运算?

               叠加: 如果一部电影的类型即是  动作,也是喜剧

                        var  category= Category.Motion|Category.Comedy =0011(3)

               减法:如果要将这部电影,去掉喜剧类型

                         category&= ~Category.Comedy    

                         0011&=~0010         0011&=1101  0001(动作)

                判断:判断一部电影是否是动作片

                         (category& Category.Motion)==Category.Motion

                       

         

  • 相关阅读:
    如何掌握所有的程序语言
    Excel技巧:如何绘制一份优秀的甘特图(项目管理)
    Excel技巧:如何绘制一份优秀的甘特图(项目管理)
    程序员的鄙视链
    程序员的鄙视链
    程序员的鄙视链
    程序员之间的鄙视链
    炮(棋盘DP)
    最长公共子上升序列
    black hack
  • 原文地址:https://www.cnblogs.com/cainiaoguoshi/p/4307826.html
Copyright © 2020-2023  润新知