代码改变世界

按位与(&)和按位或(|)的使用

2009-08-18 23:32  Vincent.Feng  阅读(2203)  评论(0编辑  收藏  举报

/ * ---------------------------------------------------------------------
目的:练习按位(&)与和按位或(|)
例子大意:一周内的每天都有相应的安排,当输入相应的日期,输出安排的事宜。
例如:周一做“周一的工作”;周二做“周二的工作”;... ...
如果同时输入周一和周二,则应输出“周一的工作”、“周二的工作”
--------------------------------------------------------------------- * /

 1enum WeekDay
 2{
 3    None = 0x0,
 4    Sunday = 0x1,
 5    Monday = 0x2,
 6    Tuesday = 0x4,
 7    Wednesday = 0x8,
 8    Thursday = 0x10,
 9    Friday = 0x20,
10    Saturday = 0x40
11}

12
13class Program
14{
15    static void Main(string[] args)
16    {
17        showWeekDayWork(WeekDay.Monday | WeekDay.Saturday);
18        Console.Read();
19    }

20
21    static void showWeekDayWork(WeekDay weekDay)
22    {
23        if ((weekDay & WeekDay.Sunday) == WeekDay.Sunday)
24        {
25            Console.WriteLine("周日的工作");
26        }

27        if ((weekDay & WeekDay.Monday) == WeekDay.Monday)
28        {
29            Console.WriteLine("周一的工作");
30        }

31        if ((weekDay & WeekDay.Tuesday) == WeekDay.Tuesday)
32        {
33            Console.WriteLine("周二的工作");
34        }

35        if ((weekDay & WeekDay.Wednesday) == WeekDay.Wednesday)
36        {
37            Console.WriteLine("周三的工作");
38        }

39        if ((weekDay & WeekDay.Thursday) == WeekDay.Thursday)
40        {
41            Console.WriteLine("周四的工作");
42        }

43        if ((weekDay & WeekDay.Friday) == WeekDay.Friday)
44        {
45            Console.WriteLine("周五的工作");
46        }

47        if ((weekDay & WeekDay.Saturday) == WeekDay.Saturday)
48        {
49            Console.WriteLine("周六的工作");
50        }

51    }

52}

53

这样的方式可以用到权限里去.而且可以做到具体的方法权限操作判断上.不过如果权限很多就要是在数据库里存nvarchar(max)格式了.
2的N次方嘛,嘿嘿.