Как вы выполняете побитовое И-операцию на двух 32-битных целых числах в С#?
Побитовое И на 32-битном Целом
Ответ 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
использование и оператор (не &)
Ответ 6
int a = 42;
int b = 21;
int result = a & b;
Для получения дополнительной информации здесь первый результат Google:
http://weblogs.asp.net/alessandro/archive/2007/10/02/bitwise-operators-in-c-or-xor-and-amp-amp-not.aspx
Ответ 7
Ответ 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;