電子書籍の厳選無料作品が豊富!

n=4
(($n & 1)) && echo "Odd" || echo "Even"

変数がEvenかOddか調べるというプログラムで出てきたのですが
&を調べてもバックグランドで実行みたいなものしか出てきませんしここに出てくる数字の1がなんなのかもよく解りません。。

ここに出てくる演算子?の&と1は何ですか?

A 回答 (2件)

この場合の&はビット毎のAND演算


n=4の場合、4は2進数で100
 100
& 001
------
 000

n=5の場合
 101
& 001
------
 001

すなわちnのbit0が1か0かをみることで、nが奇数か偶数かを判断しています。
    • good
    • 0
この回答へのお礼

なるほど、そういうことだったのですね。
ありがとうございました。

お礼日時:2018/01/20 20:34

注目するべきは、 (( )) です。


ただ式をまとめるだけのカッコとは、意味が違います

https://linuxjm.osdn.jp/html/GNU_bash/man1/bash. …
> 複合コマンド (Compound Commands)
> ((expression))
> expression が後述の 算術式評価 で説明される規則に従って評価されます。

ということで、「算術式評価」を参照してください。


なお、 & が 論理積の演算になるのは「算術式評価」のときで、それ以外の場所では、別の意味になります。
記号がなにか特別な意味を持つのか、ただの文字列なのか、違いを意識するようにしましょう。
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2018/01/20 20:34

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!