プレイ日記
ネタバレ
だにえる haru2016nen
"押されてない"ボタン数値を返す関数
10そうだね
プレイ済み
返信[1]
親投稿
だにえる haru2016nen
7行目のIFの前の「?」は気にしないで下さい
0そうだね
プレイ済み
返信[2]
親投稿
ぴくと kanau1203
notだと遅かったりするのかな
1そうだね
プレイ済み
返信[3]
親投稿
だにえる haru2016nen
最初NOTを使ってやろうと 思ったんだけど、 RETURN NOT BUTTON()+1 みたいにすると数値がマイナスになるだけで、 FORMAT$,STR$,VAL…色々やってみたん ですけど、 結局、簡単な↑のやつになりました
0そうだね
プレイ済み
返信[4]
親投稿
おちゃめ ochame_nako
NOTで負数になるのは整数型で演算しているためです。 プチコン3号の整数型は符号付き32bit整数型なのですがこれは補数によって負数を表現しているため最上位のbitが1の時は負数になります。 NOTやANDのようなビット演算子というのはこの32bit分をまとめて論理演算します。 したがって、NOT 1というのは 実質的にはNOT &B00000000000000000000000000000001であり、その結果は&B11111111111111111111111111111110となりこれは-2となります。
0そうだね
プレイ済み
返信[5]
親投稿
おちゃめ ochame_nako
NOTはBUTTON関数では使われない上位のビットまで演算してしまうため「負数表示が望ましくない」と感じられるのであればNBUTTON関数はNOTを使うならばANDと併用する必要があります。 DEF NBUTTON() RETURN &1101111111111 AND NOT BUTTON() END このようにすれば正しく表示してくれますが、だにえるさんが作ったプログラムの方が短いですね。 表示ではなく判定だけ行うのであれば不要なビットを演算しても問題ないため押してないボタンを求めるにはNOTが非常に有用です。
1そうだね
プレイ済み