プチコン3号 SmileBASIC コミュニティ投稿こうくうき 200175kouyou2015/01/25 16:10:47「AND」の使い方を教えてください。ヘルプにはのっていませんでした。1そうだね 5返信プレイ済み2017/11/04 00:02:53に取得
プチコン3号 SmileBASIC コミュニティ返信[1]親投稿こうくうき 200175kouyou2015/1/25 16:14この画像の72行目の AND がわかりません0そうだね プレイ済み2017/11/04 00:02:53に取得
プチコン3号 SmileBASIC コミュニティ返信[2]親投稿こうやま kouyama19672015/1/25 16:34 これは恐らく A.16(BUTTON関数ではAボタンに対応)と32(Bボタンに対応)を足して48を求める。 B.変数BT(多分BUTTON関数の値で)が48で、Bも48だった時だけ、IFによる条件判断に1(条件に当てはまる)を返す。 C.Bの結果が0だったら、@MSSKIPに移動する(SKIP=「とばす、省略する」の意味) です。簡単に言うと 「この時にAボタンとBボタンを同時に押していなかったら、途中を飛ばして@MSSKIPに行く」 という処理をしているのでしょう。 1そうだね プレイ済み2017/11/04 00:02:53に取得
プチコン3号 SmileBASIC コミュニティ返信[3]親投稿コータ[quota] W.D.WE2015/1/25 17:582進数で書くと、 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そうだね プレイ済み2017/11/04 00:02:53に取得
プチコン3号 SmileBASIC コミュニティ返信[4]親投稿おちゃめ ochame_nako2015/1/25 22:11BT AND 16+32はAボタンが16、Bボタンが32という値を返すということさえ知っていれば計算しなくてもAボタンもしくはBボタンを押した時に0以外の値を取ることが分かります。 したがって、IF (BT AND 16+32)==0 THEN はAボタン、Bボタンの両方が押されてない時にTHEN以下を実行します。0そうだね プレイ済み2017/11/04 00:02:53に取得
プチコン3号 SmileBASIC コミュニティ返信[5]親投稿こうくうき 200175kouyou2015/1/27 20:35皆さん丁寧に教えていただきありがとうございます!よく理解できました。0そうだね プレイ済み2017/11/04 00:02:53に取得