您的位置:首页 > 编程语言 > C#

C#中通过位运算实现多个状态的判断

2015-12-04 10:06 369 查看
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace StateMachine
{
class Program
{
static void Main(string[] args)
{
//输出十进制 - 二进制的值
Console.WriteLine(State.A + " - " + Program.TwoNum(Convert.ToString(State.A, 2)));
Console.WriteLine(State.B + " - " + Program.TwoNum(Convert.ToString(State.B, 2)));
Console.WriteLine(State.C + " - " + Program.TwoNum(Convert.ToString(State.C, 2)));

//创建一个变量,添加三个状态
short mark = 0;
mark |= State.A;
mark |= State.B;
mark |= State.C;

Console.WriteLine("\n");
Console.WriteLine("mark的值: " + mark + " - " + Program.TwoNum(Convert.ToString(mark, 2)));
Console.WriteLine("\n状态显示");

//判断一个值里面一共有几个状态
if ((mark & State.A) > 0)
Console.WriteLine("拥有A的状态");
if ((mark & State.B) > 0)
Console.WriteLine("拥有B的状态");
if ((mark & State.C) > 0)
Console.WriteLine("拥有C的状态");
if ((mark & State.D) > 0)
Console.WriteLine("拥有D的状态");

Console.ReadLine();
}

//默认在后面补上7个0
public static string TwoNum(string s)
{
string temp = "";
for (int i = s.Length; i < 8; i++)
{
temp += "0";
}

s = s.Insert(0, temp);
return s;
}
}

/// <summary>
/// 状态
/// </summary>
public class State
{
public static short A = 1 << 0;
public static short B = 1 << 1;
public static short C = 1 << 2;
public static short D = 1 << 3;
public static short E = 1 << 4;
}

}




内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: