Pregunta

¿Cómo se realiza una operación AND bit a bit en dos enteros de 32 bits en C #?

Relacionado con:

operaciones bit a bit # Lo más común C.

¿Fue útil?

Solución

Con el operador &

Otros consejos

Utilice el operador &.

  

Binario y los operadores están predefinidos para los tipos integrales [.] Para los tipos integrales, y calcula el AND bit a bit de sus operandos.

MSDN .

var x = 1 & 5;
//x will = 1
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 */ }

El uso y el operador (no &&)

int a = 42;
int b = 21;
int result = a & b;

Para un poco más de información aquí es el primer resultado de Google:
http://weblogs.asp.net/alessandro/archive/2007/10/02/bitwise-operators-in-c-or-xor-and-amp-amp-not.aspx

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

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

Si intenta convertir el resultado a int, es probable que obtener un error de desbordamiento a partir de 0x80000000, Sin control permite evitar errores de desbordamiento que no es tan raro que cuando se trabaja con las máscaras de bits.

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

// result2 == -1;
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top