人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPの偶奇判定と&演算子

PHPで偶数か奇数かを判定する際に
http://www.php.net/manual/ja/function.array-filter.php
にて&演算子が用いられていますが,この処理の意味が不明です。
どういう具合で偶奇判定が行われているのか教えていただけますでしょうか?

●質問者: mikakane
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● JULY
ベストアンサー

「&」はビット演算子です。
PHP: ビット演算子 - Manual

「1」という整数値は、最下位のビットが 1 で、残りのビットが 0 ですから、「1」という数値との
「&」によるビット演算の結果は、

となるので、演算の結果は 0 か 1 になります。

で、「1」とビット演算を行う相手の数値の最下位ビットが 1 である、という事は、その値が奇数の時、逆に最下位ビットが 0 の時は、その値が偶数の時になるので、

になります。

で、php で整数型から論理型への変換で
PHP: 論理型 (boolean) - Manual

なので、

function odd($var)
{
 // 渡された整数が奇数かどうかを返します
 return($var & 1);
}

となります。


mikakaneさんのコメント
ビット演算だったんですね。盲点でした。ありがとうございます!!
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ