Frage

Wie führen Sie eine bitweise UND-Operation auf zwei 32-Bit-Integer in C #?

Related:

Meistgenannte C # bitweise Operationen.

War es hilfreich?

Lösung

Mit dem Operator &

Andere Tipps

Mit dem & Operator.

  

Binary & Operatoren sind für die integrierten Typen vordefiniert [.] Für Integral-Typen & berechnet die bitweise AND seiner Operanden.

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 */ }

Nutzung & Operator (nicht &&)

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

Für ein bisschen mehr Infos hier ist das erste Google-Ergebnis:
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

Wenn Sie versuchen, das Ergebnis zu int zu werfen, erhalten Sie wahrscheinlich ein Überlauffehler von 0x80000000 starten, Ungeprüfter erlaubt, Fehler zu vermeiden Überlauf, der nicht so ungewöhnlich, wenn sie mit den Bit-Masken arbeiten.

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

// result2 == -1;
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top