• ベストアンサー

【C言語】if文の条件式について

基本的な質問で申し訳ございません。 C言語のif文にて、以下の条件式がよくわかりません。 if(a & PAD_INPUT_UP){ b = b-4; } 「&」はどのような意味になるのでしょうか??

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

&は各ビットの論理積を計算します。 1ビットで考えると、1&1=1 1&0=0 0&1=0 0&0=0 です。 あるビットが1か0かを判定するのによく使います。 たとえば、PAD_INPUT_UP=00000100 で、 (1)aがxxxxx0xx ならa&PAD_INPUT_UP=00000000 (2)aがxxxxx1xx ならa&PAD_INPUT_UP=00000100 になります。(xは0でも1でもいいという意味) if文は判定式の中が0以外のときにその後を実行するので、下から3ビット目が1の時つまり(2)の時だけだけifの中を実行するわけです。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • tanma3
  • ベストアンサー率58% (14/24)
回答No.1

マスクっていったらいいでしょうか。 たとえば、 int b; int a=5; #define PAD_INPUT_UP 4 であった場合, b = (a & PAD_INPUT_UP);の値は? 上記式と同じことです。

すると、全ての回答が全文表示されます。

関連するQ&A