プレイ日記
☆Tatsukin★ tatu_kin1192
ver.3.3.100!?3.3.1じゃないんですか!?
6そうだね
プレイ済み
返信[1]
親投稿
バニラ 435778
それってどうやって表示するのですか?
2そうだね
プレイ済み
返信[2]
親投稿
Godot orz_127
普通に3.3.1となりますよ。 何のプログラムで表示させたかわかりませんが、そのプログラムのバージョン表示のところバグっているのでは? 早速3.3.1でのバグ報告??
2そうだね
プレイ済み
返信[3]
親投稿
イスターリャ arduinotexter
Godotさん<< Olders OS 5 で安定して発生します
2そうだね
プレイ済み
返信[4]
親投稿
Godot orz_127
バージョンの最後の2バイトは多分リトルエンディアン(で良かったか?w)で格納されているので上位と下位をひっくり返す必要があるのでは?と。 &H0100→&H0001 それを忘れてしかも16進数なのに10進数で表示させると100になる気が。 ?VAL("0100") 正しくは VAL("&H"+"00"+"01") そういう問題ではない??
0そうだね
プレイ済み
返信[5]
親投稿
イスターリャ arduinotexter
普通にバージョン取得するところで HEX$(VERSION)してから 右側の0を詰めれば バージョン取得出来るんじゃ。
2そうだね
プレイ済み
返信[6]
親投稿
Godot orz_127
Ver.XX.YY.ZZZZ のとき&HXXYYZZZZ 16進文字列8桁にしたいのでHEX$(VERSION,8)→"03030100" これをMID$()やLEFT$()、RIGHT$()で切り分け、最初のXX部分は左から2文字の"03"。この場合VAL("03")としても同じ値ですが正しくはVAL("&H"+"03") 次のYYのところも同じ。 残りのZZZZですがこれはどうやら上位バイトと下位バイトがひっくり返った状態です。 (リトルエンディアン、ビッグエンディアンで検索すると何かわかるかもw) "01":"00" がZZzzとしたらzzZZが正しい値。なので"00":"01"と直す必要があります。 で、この場合もVAL("0001")としても値は同じですが、16進数なのでVAL("&H"+"0001")が正解。 …だと思われます。
0そうだね
プレイ済み
返信[7]
親投稿
Ϊċăņ ďо įт hikahikaru3
vX.Y.Zなら&H XXYYZZZZとなるので, V$=HEX$(VERSION,8) FOR I=4 TO 8IF V$[I]=="0"THEN V$=SUBST$(V$,I,"")ENDIF NEXT ?VAL(LEFT$(V$,2));".";VAL(MID$(V$,2,2);".";VAL(RIGHT$(V$,4)) でいいと思います
0そうだね
未プレイ
返信[8]
親投稿
Godot orz_127
ビット演算でやるとこんな感じ。 各値が9までとする場合、手抜きで HEX$(VERSION)の値"03030100" 最初の6文字を2文字づつ切り出して (最後の"00"は捨てる) "03"、"03"、"01"をそのまま10進数変換しても大丈夫ですw
0そうだね
プレイ済み