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;
} }