Bitweise UND auf 32-Bit-Integer
-
20-09-2019 - |
Frage
Wie führen Sie eine bitweise UND-Operation auf zwei 32-Bit-Integer in C #?
Related:
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
Die & operator
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;