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;