17

C#の2つの32ビット整数に対してビット単位のAND演算をどのように実行しますか?

関連している:

最も一般的なC#のビット演算。

4

8 に答える 8

23

&演算子を使用

于 2009-12-18T16:40:12.270 に答える
6

演算子を使用し&ます。

二項演算子と演算子は、整数型に対して事前定義されています[。]整数型の場合、&はそのオペランドのビット単位のANDを計算します。

MSDNから。

于 2009-12-18T16:40:57.290 に答える
3
var x = 1 & 5;
//x will = 1
于 2009-12-18T16:41:02.050 に答える
2
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 */ }
于 2014-08-14T04:19:12.767 に答える
0

使用&演算子(&&ではない)

于 2009-12-18T16:40:27.870 に答える
0
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

于 2009-12-18T16:41:13.797 に答える
0

演算子

于 2009-12-18T16:41:51.550 に答える
0
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;
于 2009-12-18T16:59:43.010 に答える