論理演算子
&& || AND OR XOR !
解説
論理演算式 | 意味 |
---|---|
(条件1) && (条件2) | 条件1 かつ 条件2 を満たす |
(条件1) || (条件2) | 条件1 または 条件2 を満たす |
A AND B | ビットごとの&& (論理積) |
A OR B | ビットごとの|| (論理和) |
A XOR B | ビットごとのXOR(排他的論理和) |
! | 否定 |
&&、||
&&、|| は、複数の真(TRUE)と偽(FALSE)値を組み合わせて、新たな真偽結果を出します。(サンプルコード参照)※「|」はキーボードの左下、「A」の左側にある。
AND、OR、XOR
AND、OR、XOR は、数値を2進数の桁ごとに論理演算(ビット演算)します。対象となるのは数値対数値で、結果として新たな数値を返します。
<例>
「A=6、B=3」の場合、
A AND B
A OR B
A XOR B
は、まずそれぞれを2進数に変換します。
A=6 → 2進数では「110」
B=3 → 2進数では「011」
これを各桁ごとに演算してゆきます。
ANDの場合、両方のビットが1の時、その桁は1
A=110B=011
---
X=010 → 10進数で2
ORの場合、どちらかのビットが1であれば、その桁は1
A=110B=011
---
Y=111 → 10進数で7
XORの場合、値が異なる桁が1
A=110B=011
---
Y=101 → 10進数で5
使用例はサンプルコードを参照
サンプルコード
&&、|| の例
十字キー(斜め入力にも対応)でキャラクターを動かすサンプルコード
※「B AND 1」は「(B AND 1)!=0」の意味。比較演算子参照
AND、OR の例
十字キー(斜め入力にも対応)でキャラクターを動かすサンプルコード
※「B AND 1」は「(B AND 1)!=0」の意味。比較演算子参照
ビット反転の例DIM X=200:Y=200SPSET 0,1275 'スプライト0番にキャラをセット(1275:赤い戦闘機)@MAINLOOP'上が押されるとBの1桁目が1(???1)になるので、B AND 1(0001)で1桁目が1かを調べる'下が押されるとBの2桁目が1(??1?)になるので、B AND 2(0010)で2桁目が1かを調べる'左が押されるとBの3桁目が1(?1??)になるので、B AND 4(0100)で3桁目が1かを調べる'右が押されるとBの4桁目が1(1???)になるので、B AND 8(1000)で4桁目が1かを調べるSPOFS 0,X,Y 'キャラを画面に表示VSYNC '実際に表示されるまで待つ
実行結果
0 00000000 FFFFFFFF1 00000001 FFFFFFFE2 00000002 FFFFFFFD3 00000003 FFFFFFFC4 00000004 FFFFFFFB5 00000005 FFFFFFFA6 00000006 FFFFFFF97 00000007 FFFFFFF88 00000008 FFFFFFF79 00000009 FFFFFFF610 0000000A FFFFFFF511 0000000B FFFFFFF412 0000000C FFFFFFF313 0000000D FFFFFFF214 0000000E FFFFFFF115 0000000F FFFFFFF016 00000010 FFFFFFEF17 00000011 FFFFFFEE18 00000012 FFFFFFED19 00000013 FFFFFFEC20 00000014 FFFFFFEB