エントリーの編集

エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
perl でビット演算の結果を数値比較する際の注意点 | dTblog
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています

- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
perl でビット演算の結果を数値比較する際の注意点 | dTblog
ハマったのでメモ。 perl で、ビット演算の計算結果と数値を比較する判定文を書いたら、これがうまくい... ハマったのでメモ。 perl で、ビット演算の計算結果と数値を比較する判定文を書いたら、これがうまくいかない。書いたのは、次のようなコード。 if ($var & 1 == 0) { print $var; } $var の値が 1 だろうが 0 だろうが、とにかく結果は 0 となって $var が出力されない。これだけシンプルだと逆に原因が特定できずに困る。 答えは、「Perl の演算子と優先順位」にありました。要するに、比較演算子の方が、ビット演算子より先に評価されたため、常に演算結果が 0 となっていたのでした。これは盲点。 ということで、以下のように修正して解決。 if (($var & 1) == 0) { print $var; } このことは、特段 perl に限った話ではなくて、php でも同様だったし、java にいたってはコンパイルエラーになってしまった。(eclips