Ответ 1

С оператором & и

Ответ 2

Используйте оператор &.

Двоичные и операторы предопределены для интегральных типов [.] Для интегральных типов и вычисляет побитовое И его операндов.

Из MSDN.

Ответ 3

var x = 1 & 5;
//x will = 1

Ответ 4

const uint 
  BIT_ONE = 1,
  BIT_TWO = 2,
  BIT_THREE = 4;

uint bits = BIT_ONE + BIT_TWO;

if((bits & BIT_TWO) == BIT_TWO){ /* do thing */ }

Ответ 5

использование и оператор (не &)

Ответ 8

var result = (UInt32)1 & (UInt32)0x0000000F;

// result == (UInt32)1;
// result.GetType() : System.UInt32

Если вы попытаетесь применить результат к int, вы, вероятно, получите ошибку переполнения, начиная с 0x80000000, Unchecked позволяет избежать ошибок переполнения, которые не так необычны при работе с бит-масками.

result = 0xFFFFFFFF;
Int32 result2;
unchecked
{
 result2 = (Int32)result;
}

// result2 == -1;