投稿
こうくうき 200175kouyou
「AND」の使い方を教えてください。ヘルプにはのっていませんでした。
1そうだね
プレイ済み
返信[1]
親投稿
こうくうき 200175kouyou
この画像の72行目の AND がわかりません
0そうだね
プレイ済み
返信[2]
親投稿
こうやま kouyama1967
 これは恐らく A.16(BUTTON関数ではAボタンに対応)と32(Bボタンに対応)を足して48を求める。 B.変数BT(多分BUTTON関数の値で)が48で、Bも48だった時だけ、IFによる条件判断に1(条件に当てはまる)を返す。 C.Bの結果が0だったら、@MSSKIPに移動する(SKIP=「とばす、省略する」の意味)  です。簡単に言うと 「この時にAボタンとBボタンを同時に押していなかったら、途中を飛ばして@MSSKIPに行く」  という処理をしているのでしょう。
1そうだね
プレイ済み
返信[3]
親投稿
2進数で書くと、 16は&B010000 32は&B100000 16+32は&B110000 になります。ANDは、ビット毎の論理積演算子なので、 BT AND 48は、BTが、ビット4とビット5のどちらかまたは両方が1のとき、0以外になります。値は、それぞれ、16,32,48になります。したがって、 (BT AND 16+32) == 0が真(TRUE)になるのは、BTのビット4,ビット5がともに0の場合になります。BTがボタンの状態と仮定すると、ABどちらも押されていないとき真となります。 ビット演算子は、2進数をイメージしないと間違えやすいので、なれるまでは、1ビット毎に判定したほうが、間違いを少なく出来るかもしれません。私も、よく間違えて、デバッグでよく悩んでいます。
1そうだね
プレイ済み
返信[4]
親投稿
おちゃめ ochame_nako
BT AND 16+32はAボタンが16、Bボタンが32という値を返すということさえ知っていれば計算しなくてもAボタンもしくはBボタンを押した時に0以外の値を取ることが分かります。 したがって、IF (BT AND 16+32)==0 THEN はAボタン、Bボタンの両方が押されてない時にTHEN以下を実行します。
0そうだね
プレイ済み
返信[5]
親投稿
こうくうき 200175kouyou
皆さん丁寧に教えていただきありがとうございます!よく理解できました。
0そうだね
プレイ済み