1

まず、これは水曜日に行われる中間試験の準備段階にあることを記録に残しておきます。私は C プログラミングのコースを受講しており、ビット操作にはほとんど触れていませんが、テストを受けています。

たとえば、次のようなコードのように、A、B、C、および D が初期化されるようなものを知っているはずです。

unsigned int A, B, C, D;
A = 0xfedc & 0x300c;
B = 0xba98 | 0x1236;
C = 0x7654 ^ 0xfa00;
D = ~0xffff3210;

可能であれば、これらの概念を理解するための適切なチュートリアル/ガイドを提供していただけますか? 説明も素晴らしいですが、実際の回答の説明を渡されたくないです。

あなたが私を惜しまない助けを前もって感謝します。

4

2 に答える 2

2

最初の問題は次のとおりです。

  • &ビット単位の AND、|ビット単位の OR、^ビット単位の XOR、および~ビット単位の NOT として認識していますか?

そうでない場合は、1 つまたは 2 つの問題があり、それらすべてを認識する必要があります。

次に、各操作の意味を知る必要があります...

  • 特定のビット位置について、両方のビットが1の場合、 にb1 & b2なります1。それ以外の場合は になります0
  • 特定のビット位置について、両方のビットが0の場合、 にb1 | b2なります0。それ以外の場合は になります1
  • 特定のビット位置について、2 つのビットが同じ (両方0または両方1) の場合、次のb1 ^ b2ようになり0ます。それ以外の場合は になります1
  • 特定のビット位置について、ビットが の場合0~b1になります1。それ以外の場合は になります0

また、16 進表現が数値のビット パターンと密接に関連していることを認識する必要があります。

  • 0x0 ⟶ 0000 2
  • 0x1 ⟶ 0001 2
  • ...
  • 0xE ⟶ 1110 2
  • 0xF ⟶ 1111 2

これらを組み合わせて、オペランドの各ビットにビット単位の演算子を適用して、示されている質問の答えを推測できます。

于 2012-10-01T22:12:50.477 に答える
2

これが役立つことを願っています http://www.cprogramming.com/tutorial/bitwise_operators.html

于 2012-10-01T22:06:54.663 に答える