usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;namespacestatemachine{classProgram {Static voidMain (string[] args) { //output decimal-binary ValueConsole.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))); //Create a variable, add three states ShortMark =0; Mark|=State.a; Mark|=state.b; Mark|=state.c; Console.WriteLine ("\ n"); Console.WriteLine ("Mark's value:"+ Mark +" - "+ Program.twonum (convert.tostring (Mark,2))); Console.WriteLine ("\ n Status Display"); //judge a value in a total of several States if(Mark & State.a) >0) Console.WriteLine ("have a status of a"); if(Mark & state.b) >0) Console.WriteLine ("have the status of B"); if(Mark & state.c) >0) Console.WriteLine ("have the status of C"); if(Mark & STATE.D) >0) Console.WriteLine ("have the status of D"); Console.ReadLine (); } //by default, the following 7 0 Public Static stringTwonum (strings) {stringtemp =""; for(inti = s.length; I <8; i++) {Temp+="0"; } s= S.insert (0, temp); returns; } } /// <summary> ///Status/// </summary> Public classState { Public Static ShortA =1<<0; Public Static ShortB =1<<1; Public Static ShortC =1<<2; Public Static ShortB1<<3; Public Static ShortE =1<<4; }}
Multiple states judged by bit operations in C #