HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2018
1012
HSP太郎[&$]これの意味とは3解決


HSP太郎

リンク

2018/10/12(Fri) 20:55:06|NO.85558

mapeditに
if key&$10 : goto *cmd_space
handtool=0
if key&$100 : goto *cmd_put
if key&$200 : goto *cmd_get
と書いてあるのですが、[&$]ってどのような意味ですか?



この記事に返信する


Velgail

リンク

2018/10/12(Fri) 21:25:18|NO.85559

一文字ずつ、意味があります。

まず、$記号について。

これは、mes $10 とかするとわかります(表示されるのは16)が、16進数表記用の記号です。
HSPでは主にビットフィールドを意識する際に利用する表記です。
(他のビットフィールド表記として、特に1bitだけフラグが立っていることを強調する場合は、たとえば$100を(1<<8)とすることもあります)

次に&記号について。

これは、ビット演算子のANDです。詳しくは下などを参照ください。(これを簡単に説明するのは非常に難しい)
http://www.cppdrive.jp/cstart/ope/index6.html

stick命令の説明にも、この演算子が利用されていますので、参照してみてください。

以上の説明で、なにかわからない所があれば再質問をお願いします。



GENKI

リンク

2018/10/12(Fri) 21:47:11|NO.85561

補足。

Velgailさんが提示しているアドレスはC言語の説明ページなので、サンプルソースはHSPではそのままでは動作しません。
ということでHSP向け説明ページも一緒に御覧ください。

HSP開発wiki 小ワザ/ビット操作
https://wiki.hsp.moe/%E5%B0%8F%E3%83%AF%E3%82%B6%EF%BC%8F%E3%83%93%E3%83%83%E3%83%88%E6%93%8D%E4%BD%9C.html

HSP開発wiki HSP講座/ビット演算
https://wiki.hsp.moe/HSP%E8%AC%9B%E5%BA%A7%EF%BC%8F%E3%83%93%E3%83%83%E3%83%88%E6%BC%94%E7%AE%97.html



if key & $100 : goto *cmd_put
スペースなくても動きはしますが、スペースはあったほうが読みやすいですね。
気をつけたい。



HSP太郎

リンク

2018/10/29(Mon) 19:27:02|NO.85749

ありがとうございます。



ONION software Copyright 1997-2018(c) All rights reserved.