using System.Collections.Generic;
public static void Main(string[] args)
const string THING1 = "THING1";
const string THING2 = "THING2";
const string THING3 = "THING3";
const string THING4 = "THING4";
Dictionary<string, int> atPosition = new Dictionary<string, int>()
setBit(ref results, atPosition[THING1], true);
setBit(ref results, atPosition[THING2], true);
setBit(ref results, atPosition[THING1], false);
setBit(ref results, atPosition[THING3], true);
setBit(ref results, atPosition[THING4], true);
setBit(ref results, atPosition[THING3], false);
foreach(var bit in atPosition)
Console.WriteLine("{0} is : {1}", bit.Key, getBit(results, atPosition[bit.Key]));
public static bool getBit(int result, int position)
return (result & position) != 0;
public static void setBit(ref int result, int position, bool value)