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


HSPTV!掲示板


未解決 解決 停止 削除要請

2015
1018
y.tackpoke6解決


y.tack

リンク

2015/10/18(Sun) 00:22:10|NO.72353

簡単すぎる疑問で恐縮なんですけど

d=0.0 i=5 poke d,0,i mes d
でdoubleに書き込めないのはどういう仕様ですか?
どうすれば回避できるでしょうか



この記事に返信する


窓月らら

リンク

2015/10/18(Sun) 00:35:32|NO.72355

それでも書き込めてはいます。
デバッグウィンドウのメモリダンプを見てください。



暇人

リンク

2015/10/18(Sun) 00:42:00|NO.72356

書き込まれてる

d=0.0 i=5 poke d,0,i repeat 8 mes peek(d,cnt) loop
実数と整数では根本的に数値の記憶方法が違う

a=1.0 repeat 8 mes peek(a,cnt) loop



y.tack

リンク

2015/10/18(Sun) 00:56:27|NO.72357

お騒がせして申し訳ありませんでした
peekすると6番目あたりから数字が出てきました
0番と1番だけpeekして どうやっても表示出来なくて
デバッグウィンドウはほとんど見たことなくて
mes出力ばかり見てました



y.tack

リンク

2015/10/24(Sat) 18:19:42|NO.72471

遅くなりましたが 思い出しながら結論を書きますと

この過ち以前に
結局ローカル変数を引数だの返り値だの色々な用途に使ってて
ローカル変数にするのをやめたらちゃんと動きましたw
他にはよそで普通の変数名になってたかもしれません

次に
乱数をひととおり書き込んでもmesした値は0.000000
だったのですが
実数なので乱数を書き込むと1/4(マイナスも考慮して)くらいの確率で
値が0.000000になるかもしれません(それ以下の小数でしょう)
違う乱数を書き込むと大きい値になりました



窓月らら

リンク

2015/10/25(Sun) 00:45:07|NO.72487

rnd は整数なので、実数の乱数を得るには double を使う。

randomize a=double(rnd(4))/4 mes a



y.tack

リンク

2015/10/25(Sun) 14:01:50|NO.72491

いやいや 別スレで教えてもらったのの実践中でして
暗号用にxorしたいから
rndで得た値をxorしてpokeして暗号かけてました



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