NEW  |  HOME  |  OLD

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

NEW  |  HOME  |  OLD

%nでfvarに書き込む

4/18-19,21,22
23:34 (lunatic__) やだ・・・酷い・・・ http://lunatic284.blog90.fc2.com/blog-entry-15853.html
23:34 (vesper) [URL] lunaの倉庫 // %nでfvarに書き込むテンプレ(fvar(40))
23:38 (lunatic__) 昔の技術がこんなところで役に立つとはねぇ
23:42 (hitachi) あはは
23:44 (lunatic__) ちなみにこの技術使ってる現在唯一のキャラ:Rうなぎ(おい
23:44 (Oracle) んー・・・?
23:44 (Oracle) sysvar(0)に干渉・・・?
23:44 (lunatic__) int参照するところにfloat値で書き込める技術
23:44 (Oracle) あ、やっぱりそうか
23:44 (Oracle) なんか昔にどっかで見て、できるってことだけは知ってた
23:46 (simotsuki) sysvar(0)が危ないって随分前に言われてたのはコイツか~
23:46 (Oracle) でもなんかfvar(40)で書き込むと正常な値にならないって言われてたような
23:46 (Oracle) それがコントロールできるなら非常に強力なんだが
23:47 (lunatic__) float値で書き込むから思い通りに行かないってだけだったと思う
23:47 (lunatic__) あと危ないってわけでもないと思う(自分のしか無理だし
23:47 (hitachi) でも代入演算子だから結局ステート奪わないといけないんじゃないの?
23:47 (Oracle) parentvarsetでもいけると思うけど
23:48 (hitachi) ん?
23:48 (lunatic__) そうそう、だから今回のように%nで書き込むためにint値欲しいってような特殊な場合以外役に立たなかったから忘れてた
23:48 (Oracle) ああ、でも研究しとこっかなあ
23:49 (hitachi) しかし本当に使い道のないテンプレを作ってしまったなあ
23:49 (Oracle) +極大値、0化、-極大値にできると結構使えるからな
23:49 (Oracle) 不可能なsysvar)
23:49 (simotsuki) まぁその当時だから詳しい内容は把握してなかったんだと思うw
23:50 (Oracle) 干渉に対して、もしこれらの数値にできるなら即死できる奴が増える
23:50 (Oracle) という訳で早速実験
23:50 (hitachi) parentvarじゃ使えないんじゃないの?
23:51 (Oracle) 使えたと思うんだけどなあ・・・。まあそれも見てみるよ
23:53 (hitachi) でもこれfloat→intだから1にできないんじゃないかな
23:53 (Oracle) ああ、また2の24乗の壁か
23:53 (Oracle) この誤差発生どうにかして欲しいわ・・・
23:54 (hitachi) あとintの極大はfloatで解釈するとNaNだからこれもたぶん無理そう
23:54 (lunatic__) fvarni
23:55 (lunatic__) fvarに書き込みたい値を書き込むって目的は達成できると思うけど
23:56 (Oracle) ああ、無理だな・・・parentvarだと領域外にされてしまう
23:56 (Oracle) ちくしょう・・・
23:57 (Oracle) 1できた
23:57 (Oracle) -0.000000000000000000000000000000000000000000001*-1
23:57 (hitachi) できるのか
23:57 (Oracle) これで1になったよ
23:58 (hitachi) int値でいいのか
23:58 (Oracle) -0.000000000000000000000000000000000000000000001*0
23:58 (Oracle) こうすると-2147483648だね。不思議だなあ
23:58 (lunatic__) てかRうなぎでfvar(40):=0.000000000000000000000000000000000000000000001*(sysvar(0)+1)ってカウントしてるから問題ないかと
23:59 (Oracle) 面白いなあこれ
00:02 (hitachi) んー…もっとスマートに10進→floatの変換できないかなあ
00:04 (Oracle) ふむ
00:04 (lunatic__) ん、intからfloat変換するってこと?
00:04 (Oracle) fvar(40)に代入はできるが参照はできないんだな。参照する場合はsysvar(0)でいけるかな
00:04 (hitachi) intからじゃなくて
00:04 (hitachi) 10進小数から
00:04 (lunatic__) sysvar(0)参照すればいいですね
00:05 (hitachi) floatの定義通りに計算してるからこれ以上スマートにはできんか…
00:06 (lunatic__) ん、fvar(40)書き込みsysvar(0)参照のそんなに難しいです?
00:06 (hitachi) いや
00:06 (hitachi) わたしのテンプレのやつ
00:07 (Oracle) 規格定義された計算式を簡略化するってできるのかねぇ
00:07 (lunatic__) さすがにあれはあれ以上簡単にしようにも手作業の変換が必要な以上厳しいかと
00:07 (hitachi) ですねえ
00:12 (Oracle) うーむやっぱり16777216が限界地点なのか・・・
00:12 (Oracle) なんとか24乗以降も扱えればもっと便利になるんだが・・・
00:12 (hitachi) これ内部でどういう処理になってるんだろ
00:13 (Oracle) 私も知りたいんだが、意味分からん
00:13 (Oracle) -0.000000000000000000000000000000000000000000001*0
00:13 (Oracle) これが0じゃない時点でもう理解できない
00:13 (hitachi) fvar(40)でバッファオーバーランっぽいことしてsysvar(0)にポインタ合わせて ってのはわかるけど
00:14 (lunatic__) 16777216以降だとズレるとかだっけ
00:14 (Oracle) ずれますねぇ。float値の特徴でもあります
00:17 (lunatic__) -0.000000000000000000000000000000000000000000001*0は符号だけマイナスで残り0って処理かね
00:17 (lunatic__) 何か変わった値になってそうな気もするがよくわからないなぁ
00:18 (Oracle) ああ、なるほど
00:19 (Oracle) 先に計算されて符号が記録された状態で0のデータが送られるのね
00:19 (Oracle) 納得
00:20 (hitachi) ということは-つけなきゃ0になるの?
00:21 (lunatic__) ですね
00:24 (Oracle) うーん、fvarの誤差修正方法は見つかってないし、現状はどうにもならんか
00:24 (hitachi) 誤差修正は無理だよ
00:24 (hitachi) 仕様上は
00:25 (Oracle) ですよねぇ
00:26 (Oracle) ああ、でもこれ利用した撃破挑戦キャラは作れるなあ
00:26 (Oracle) 一旦記録しといて、気が向いたら作るかね
00:30 (hitachi) んー…
00:32 (hitachi) -0.00000…0001ってのは2進にすると1.427247692…×2^-150ってところだろ・・・
00:32 (hitachi) 法則性がつかめんな…
00:43 (Oracle) もう少しテストするか
00:46 (Oracle) お、簡略化できるな
00:46 (Oracle) (0.1**45)でよさそうだ
00:55 (Oracle) 一気に目が覚めた

4/21
01:22 (hitachi) なんで私はこれの存在を忘れていたんだろうか
01:22 (hitachi) x=2^nのnを求めるためにlogという関数があるのではないか
23:50 (hitachi) 今回のfvarテンプレは多分これが一番早いと思いますに通じるものがある
23:50 (hitachi) と思う

4/22
01:53 (hitachi) http://lunatic284.blog90.fc2.com/blog-entry-2102.html
01:53 (vesper) [URL] lunaの倉庫 // sysvar(0)に好きな値を:=で入れる
01:53 (hitachi) これなんだけど多分
01:54 (hitachi) 10^-45≒2^-150で
01:55 (hitachi) アンダーフローして指数部が0になってるんじゃないかな
01:56 (hitachi) んでさらに後ろ23ビットの指数部ににかける数値がそのまま入って表示されるんだと思う

元:float書き込み
参考1:%nでfvarに書き込むテンプレ更新[@ひたちがゆく!]
参考2:%nでfvarに書き込むテンプレ(fvar(40))[lunaの倉庫]
参考3:float書き込み 続き
参考4:
参考5:%nでfvarに書き込む話
参考6:%nでfvarに書き込む方法

追記:
参考:logでの変換[制作日記]

NEW  |  HOME  |  OLD

Comment

コメントの投稿


管理者にだけ表示を許可する

Trackback

http://kyoakumugenirc.blog61.fc2.com/tb.php/2719-1a0fbadf

NEW  |  HOME  |  OLD

 検索フォーム


 全記事表示リンク

 全記事表示(500件ずつ)


 プロフィール

vesper

Author:vesper

IRCチャンネルの
#凶悪MUGEN
#凶悪MUGEN_雑談
のログからMUGENに関するものを編集・公開しています。
修正した方が良い箇所があった場合は知らせてもらえると助かります。
MUGEN界隈からはリンクフリーです。
その他からのリンクはご遠慮ください。
このブログをリンクに追加

IRCへの入り方などは
IRCに関する記事
をご覧ください。

簡易凶悪MUGEN IRC情報
・ホスト名
 [irc.friend-chat.jp]
・ポート番号
 [6664]
・チャンネル名
 [#凶悪MUGEN]
 [#凶悪MUGEN_雑談]
 (以下はお好みで)
 [#凶悪MUGEN_艦これ]
 [#凶悪MUGEN_スマブラ]
 [#凶悪MUGEN_麻雀]
 [#凶悪MUGEN_緋想天]
 [#凶悪MUGEN_アカツキ]
 [#凶悪MUGEN_小説]
 [#凶悪MUGEN_絵チャ]

・推奨IRCクライアント
 LimeChat2


 カテゴリ

記述の子カテゴリは目安程度に考えてください。

 最新コメント


 最新記事


 カウンター

累計の閲覧者数:

現在の閲覧者数:

 RSSリンクの表示


他ブログ更新情報(最新70件)

仕様上、下記のリンク一覧でサイトリンクにあるサイトはこの一覧に出ません。

Twitter


基礎リンク集


リンク

サイトに断り書きがない限りリンクさせてもらっています。
リンクしてほしくない場合はお気軽におっしゃってください。

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。