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;