You need to set a series of bit masks (from BIT0 to BIT31, for example, 2 ^ 0 and 2 ^ 32), and then use them using bitwise operators:
// Initialise byte value = 240; // 11110000 // Clear bit 7 value &= 127; // Result = 112 = 01110000 // Set bit 0 value |= 1; // Result = 113 = 01110001 // Toggle bits 1, 3, 5 and 7 value ^= 170; // Result = 219 = 11011011
or you can do it with BitArray's:
BitArray myBitArray = new BitArray(5); // Setup with length 5 myBitArray.SetAll(false); // Set all to false myBitArray.Set(3, true); // Set element 3 on bool is3Set = myBitArray.Get(3); // returns true bool is4Set = myBitArray.Get(4); // returns false
Learn more about BitArray here at MSDN .
In C / C ++, your bitmask can be written as follows:
enum Bits { BIT0 = 0x00000001, BIT1 = 0x00000002, BIT2 = 0x00000004, BIT3 = 0x00000008, BIT4 = 0x00000010, BIT5 = 0x00000020, BIT6 = 0x00000040, BIT7 = 0x00000080, BIT8 = 0x00000100, BIT9 = 0x00000200, BIT10 = 0x00000400, BIT11 = 0x00000800, BIT12 = 0x00001000, BIT13 = 0x00002000, BIT14 = 0x00004000, BIT15 = 0x00008000, BIT16 = 0x00010000, BIT17 = 0x00020000, BIT18 = 0x00040000, BIT19 = 0x00080000, BIT20 = 0x00100000, BIT21 = 0x00200000, BIT22 = 0x00400000, BIT23 = 0x00800000, BIT24 = 0x01000000, BIT25 = 0x02000000, BIT26 = 0x04000000, BIT27 = 0x08000000, BIT28 = 0x10000000, BIT29 = 0x20000000, BIT30 = 0x40000000, BIT31 = 0x80000000 };