32位整数上的按位与

如何在C#中对两个32位整数执行按位AND运算?

有关:

最常见的C#按位运算。

使用&运算符

使用&运算符。

二进制和运算符是为整数类型[。]预定义的。对于整数类型,&计算其操作数的按位AND。

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

使用&运算符(不是&&)

 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

&运营商

 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;