Petitverse
ゲストさん (
ログイン
)
ログイン
コミュニティ内検索
コミュニティ一覧
Petitverse ご利用ガイド
Petitverse からのおしらせ
プチコン 非公式コミュニティ
プレイ日記
こういち
◆.Id/aHiU36hu
2020/8/19 13:25
PRINT 1<<32
プチコン3号の実行結果
0
プチコン4の実行結果
1
プチコン4の左シフト、さては循環シフトだな?
これはトラップ牧場でしょ。
プチコンBIGでの実行結果募集中。
コメント
こういち
2020/8/19 14:18
◆.Id/aHiU36hu
幸運にもプチコン4には論理右シフトが存在するので、マスク処理は
-1>>32-n
と書ける。
ugly777
2020/8/19 15:25
◆B7lOIJDWuOqi
BIK
こういち
2020/8/19 15:43
◆.Id/aHiU36hu
ugly777さん
ありがとうございます。
3号と同じですね。良かった。
こういち
2020/8/19 17:22
◆.Id/aHiU36hu
https://twitter.com:443/streamia/status/1202557577776680965
循環シフトですらない模様。
こういち
2020/8/19 18:14
◆.Id/aHiU36hu
さて、これを回避するには…
分割するか…
A>>32
は
A>>16>>16と等価なので、
一般的には、
HN=N>>1
A>>HN>>N-HN
とすれば行けるか?
しんいち
2020/8/19 19:51
◆lHy.hAWXbthn
シフトじゃないけど、ついさっきハマった事例:
AのNビット目をF(0か1)にするには
A=NOT(1<<N)AND A OR F<<N
これはOKだけど
A=-1XOR 1<<N AND A OR F<<N
こっちはダメ。マイナス演算子の優先度がよう分からん^^;
こういち
2020/8/19 22:05
◆.Id/aHiU36hu
ふむ。マイナスの優先度は最強と思って良いはず。NOTも同様。
1つ目は
NOT(1<<N)AND A
でAのNビット目が0になって、
F<<NとORをとることでN番目のビットを任意の値にする。
確かに期待どおりの動作らしい。
2つ目
1<<N AND A
でAのN番目のビットのみを取り出し、
-1とXORを取ることで、論理反転。
F<<N
とのORを取る感じ。
N番目以外は強制的に1になる。
しんいち
2020/8/20 8:15
◆lHy.hAWXbthn
マイナス(単項)の優先度は実は最低だが、最低ゆえに最後まで残るから最強、ということなのだろうか。なんかマイナス(単項)だけ特殊っぽい。
こういち
2020/8/20 10:03
◆.Id/aHiU36hu
うーん?
全部最強に見えるけど?
2つめと4つめは1にマイナスがかかって、3つめは1XOR 1<<N AND A OR F<<Nにマイナスがかかってる。
扱い的にはNOTと同じ。
こういち
2020/8/20 10:12
◆.Id/aHiU36hu
リファレンスで演算子の優先順位確認したら、ANDとOR,XORが同じ優先度みたいに書いてある。(&&と||も同様)これはさすがにトラップ牧場。
https://sup4.smilebasic.com/doku.php?id=reference:%E6%BC%94%E7%AE%97%E5%AD%90
こういち
2020/8/20 10:22
◆.Id/aHiU36hu
この辺MIKIさんに聞けば一瞬で分かるんだけど、元ネタのC言語だとAND>XOR>ORの順で優先度高いらしいので、そっちが正解っぽい。
https://ja.cppreference.com/w/c/language/operator_precedence
しんいち
2020/8/20 10:31
◆lHy.hAWXbthn
マイナス(単項)はANDとかより優先度高い。ということはANDより先に計算される。ということは、AND Aの時点でプラスになる。と思ってたんだけど、結果は先頭のマイナス以外の全ての計算が終わってから、最後にマイナスかけられてるように見える。最後にかけられてるということは、つまりマイナスの優先度は最低。という解釈でした。
こういち
2020/8/20 10:41
◆.Id/aHiU36hu
実際には、AND Aされてから-1とXORがとられるので普通にマイナスになるって感じですね。
公式の表記に関してはスーさんも文句言ってた気がする。
論理「積」なので、論理「和」より優先度が高いと覚えとけば間違いない。(なおORとXOR)
しんいち
2020/8/20 10:47
◆lHy.hAWXbthn
実はAND>XOR>ORだったというのは個人的には強烈なトラップ牧場。
こういち
2020/8/20 10:58
◆.Id/aHiU36hu
リファレンスの表記が間違ってるので余計にね…
ところで、ぴぃちょんと呼ばれる言語では、&の優先度が==より高くてトラップ牧場。
ぴぃちょんではA==B==Cみたいな表記が(おちゃめさんのそれ的なやつではなく)動作するらしいので、BASICみたいに&の優先度が==より低い必要がないらしい。
Na
2020/8/21 22:11
◆QoELVrBXBQCI
そういえばmkIIだとAND=XOR=OR(常に左から計算)になっていたので少しハマりました
こういち
2020/8/21 22:41
◆.Id/aHiU36hu
Naさん
それはそれで嫌だけど、冷静に考えたらAND=XOR=ORのデメリットって直感的でないぐらいなので、慣れれば問題ない…のか?
とりあえず
>リファレンスの表記はマジで意味わからん<
ツララ
2020/8/23 8:11
◆ArUdBYOYME1V
公式の初心者講座が1から8までな感じなのと同じで
詳細は自分の目で確かめてみてね!ってスタンスなんじゃないんです?
一応ゲーム機で動くソフトですし、遊び要素的なもので。
実際、Miiverseでも確認報告の情報交換は楽しかったですし。
先入観が無い身としては何がトラップ牧場なのかサッパリですけど。
あとANDが優先度高いのは、基本的にANDとNOTがあれば
その結果の加算でORやXORも表現可能だからとかなのかも。
こういち
2020/8/23 11:34
◆.Id/aHiU36hu
ツララさん
実際の中身と説明書に書いてあることが違ったら罠だと思うのが普通だと思いますが。
説明書に書かれてないだけならまだ良いとして、プラモデルに例えると説明書に腕として表記してある部品が実際には足だったら嫌じゃないですか?
多くを説明しないのと嘘が書いてあるのは違うと思いますが
コメントを書く
こちらは「プチコン3号」「プチコンBIG」など、
プチコンシリーズ
に関する話題を扱った
コミュニティです
プチコンシリーズにまったく関係ない書き込みはご遠慮下さい。削除の対象となります
こちらにはその他のゲームや雑談のコミュニティはなく、作る予定もありません (ひとりで管理できないため)。ごめんなさい
ユーザー登録なしで書き込みができます
秘密の合い言葉は成りすましの防止 (
トリップ機能
)、書き込みの編集時の本人認証に使用します
秘密の合い言葉に他人に推測されやすい言葉、他サービスと同じパスワードは入力しないでください。
書き込むと、投稿時に入力したお名前と秘密の暗号が記憶され、ログイン状態になります
normal
happy
like
surprized
frustrated
puzzled
画像
ネタバレ
投稿する
-
WEB PATIO
-