C#のビット演算子とは何ですか?
ビット演算子はビットを処理し、ビットごとの演算を実行します。
以下はビット演算子です。
& | バイナリAND演算子は、両方のオペランドに存在する場合、結果にビットをコピーします。 | (A&B)=12、つまり0000 1100 |
| | バイナリOR演算子は、いずれかのオペランドに存在する場合、ビットをコピーします。 | (A | B)=61、つまり0011 1101 |
^ | バイナリXOR演算子は、ビットが1つのオペランドに設定されているが、両方に設定されていない場合、そのビットをコピーします。 | (A ^ B)=49、つまり0011 0001 |
〜 | Binary Ones Complement Operatorは単項であり、ビットを「反転」させる効果があります。 | (〜A)=61、これは2の補数で1100 0011です。これは、符号付きの2進数のためです。 |
<< | バイナリ左シフト演算子。左のオペランドの値は、右のオペランドで指定されたビット数だけ左に移動します。 | A <<2 =240、つまり1111 0000 |
>> | バイナリ右シフト演算子。左のオペランドの値は、右のオペランドで指定されたビット数だけ右に移動します | A>> 2 =15、つまり0000 1111 |
以下は、C#でビット演算子を操作する方法を示す例です。
例
using System; namespace Demo { class Program { static void Main(string[] args) { int a = 60; /* 60 = 0011 1100 */ int b = 13; /* 13 = 0000 1101 */ int c = 0; c = a & b; /* 12 = 0000 1100 */ Console.WriteLine("Value of c is {0}", c ); c = a | b; /* 61 = 0011 1101 */ Console.WriteLine("Value of c is {0}", c); c = a ^ b; /* 49 = 0011 0001 */ Console.WriteLine("Value of c is {0}", c); c = ~a; /*-61 = 1100 0011 */ Console.WriteLine("Value of c is {0}", c); c = a << 2; /* 240 = 1111 0000 */ Console.WriteLine("Value of c is {0}", c); c = a >> 2; /* 15 = 0000 1111 */ Console.WriteLine("Value of c is {0}", c); Console.ReadLine(); } } }
出力
Value of c is 12 Value of c is 61 Value of c is 49 Value of c is -61 Value of c is 240 Value of c is 15
-
C#の関係演算子とは何ですか?
C#で2つの値を比較するには、関係演算子を使用します。 以下は、C#の関係演算子です。 オペレーター 説明 == 2つのオペランドの値が等しいかどうかをチェックし、等しい場合は条件が真になります。 != 2つのオペランドの値が等しいかどうかをチェックし、値が等しくない場合は条件が真になります。 左のオペランドの値が右のオペランドの値より大きいかどうかを確認します。大きい場合は、条件が真になります。 左のオペランドの値が右のオペランドの値よりも小さいかどうかを確認します。小さい場合は、条件が真になります。 = 左のオペランドの値が右のオペランドの
-
Pythonのさまざまなビット演算子タイプは何ですか?
ビット演算子は、オペランドとしてビットを操作します。次のビット演算子はPythonで定義されています- &(ビットごとのAND):両方のビットオペランドが1の場合は1を返します | (ビットごとのOR):2つのビットオペランドの1つが1であっても、1を返します ^(ビット単位のXOR):一方のオペランドが1で、もう一方が0の場合にのみ1を返します 〜(ビット単位の補数):オペランドが0の場合は1を返し、その逆の場合は1を返します <<(ビット単位の左シフト):ビットは左にシフトされ、右端のほとんどのビットは0に設定されます (ビット単位の右シフト):ビットは右にシフトされ、左端のほとん