質問

C# で 2 つの 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