質問: C++の変数nの奇数、偶数を調べる関数です。 ``` int odd(int n){ return n & 0x1;} ``` この関数のうちの”return n & 0x1;”の&の意味がわかりません。 回答よろしくお願いします。
回答: この `&` はビット演算の演算子であり、ビットごとの AND (論理積) を計算します。`&&` とは別の演算子です。 整数 `n` を 2 進数として扱う場合、一番下の桁が 0 ならば `n` は偶数であり、1 ならば奇数です。今回のコードはこのことを `&` を使って計算しています。 具体例を使って考えてみます。たとえば `n = 7` のとき、これは 2 進数としては `0111` となり、`0111 & 0001` は `0001` になります。結果が `1` なので、真偽値として扱うと真を意味します。別の例として `n = 10` のときを考えてみます。こちらは 2 進数では `1010` となり、`1010 & 0001` は `0000` になります。結果が `0` なので、真偽値として扱うと偽を意味します。