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

有关的:

最常见的 C# 位运算。

有帮助吗?

解决方案

使用&操作

其他提示

使用&运算符。

  

二进制运算符预定义用于整型[。]对于整型,&计算的位与它的操作数。

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的开始溢出错误, 未检查允许避免溢出错误,与位屏蔽工作时不那么常见的。

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

// result2 == -1;
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top