NEW  |  HOME  |  OLD

ステコンオーバーフロー

10/17
17:48 (Rick_) あれ・・・?
17:48 (Rick_) ステコンオーバーフローでChangeState、persistent=xにしたら当該アドレスがx-1になりますよね?
17:49 (macbeth) そのままxじゃなかったっけ?
17:50 (macbeth) まぁ特定数値への書き換えは1度しかやったことないからあまり覚えてないんだけど…
17:50 (Rick_) ちなみに対象アドレスは0である必要はありますか?
17:51 (macbeth) うーん…
17:51 (Rick_) アドレスの値
17:51 (macbeth) そういえば対象アドレスが0以外の場合はx-1だったような…?
17:51 (Rick_) ChageStateならそれを無視して書き換えられると思っていたのですが・・・
17:51 (macbeth) ちょっとあやふやだなぁ…
17:52 (macbeth) 確かてんこでAliveを-1771105にするときに
17:52 (macbeth) 確か1つ目の領域だけ1ずれたんだよね
17:53 (Rick_) あ、やっぱり・・・
17:53 (Rick_) 対象アドレスが0じゃないとChangeStateでも書き換えられないみたいですね
17:53 (macbeth) となると
17:53 (macbeth) 一度全部0に書き換えてからchangestateするべきなのかな
17:53 (Rick_) その方が良さそうです
17:53 (Rick_) ちなみに0以外の時にChangeStateしたら0になるようです 詳しくは調べていないですが
17:54 (macbeth) ふむ
17:54 (macbeth) なるほど
17:54 (macbeth) Alive=-1から戻すときに死ぬのはそれが原因か
17:54 (Rick_) かもしれませんねー
17:55 (macbeth) となるとAliveを元に戻す場合は1桁目のみループで戻すのが手っ取り早いのかも…?
17:56 (Rick_) ループを使わずアドレスの値を0にしたかったのですが、これは仕方ありませんね・・・
17:57 (macbeth) あーでも
17:57 (macbeth) 0以外でchangestateしたら0になるならリセット用のchangestateあるステートに飛ばせばいいか
17:58 (Rick_) 行動済みフラグが怖いですが、それでも良いかも・・・?
17:58 (Rick_) あ、perisistent=256なら問題ないですか
17:58 (macbeth) フラグの方はpersistent=256で
17:58 (macbeth) どっちにしても0になるんだし
17:58 (Rick_) 確かpersisntent=256でアドレスの値0でも0のままだったと思いますし
18:01 (Rick_) あー違いました
18:02 (Rick_) やっぱりループしないと0にできないですね
18:02 (macbeth) ふむ
18:02 (Rick_) アドレスの値が0以外ならChangeStateとそれ以外に関わらずアドレスの値が-1されていくようです
18:04 (Rick_) ちなみにpersistent=0だとアドレスの値が書き変わらないようですね
18:04 (macbeth) ふむ…
18:05 (macbeth) ん?
18:05 (macbeth) でもおかしいな
18:05 (Rick_) これはChangeStateとそれ以外でも同じようです
18:05 (macbeth) それならてんこのAlive操作に5フレーム以上かかるはず…
18:05 (Rick_) 行動済みフラグがうまく作用しているとか?
18:05 (macbeth) でも4フレームで操作は完成してたはずだからchangestateで確実に書き換えられてるはずなんだけどなぁ…
18:06 (Rick_) まあ私も十分に調査しているわけではありませんからね・・・
18:15 (Rick_) 当該アドレス値が128以上だと一度通っただけで0になるみたいですね
18:15 (Rick_) これでさっきのを勘違いしていたようです
18:17 (macbeth) なるほど
18:17 (macbeth) ってことは128以上からの操作の際は一度0になると考えてやればいいわけか
18:17 (Rick_) あとアドレスの値が0の時にChangeStateした場合はpersistent=xのxがそのまま入りますが
18:17 (Rick_) ChangeState以外だとx-1になるようですね
18:17 (macbeth) ふむ
18:17 (Rick_) めんどくせぇ・・・
18:18 (macbeth) このあたりの仕様めんどくさいったらありゃしないよねぇ
18:19 (Rick_) もう一度詳しく見たら129から一度通っただけで0になるみたいです
18:19 (macbeth) ふむふむ
18:20 (macbeth) その際にpersistentの数値は適用されない?
18:20 (Rick_) persistent=0以外は0になるようです
18:20 (macbeth) なるほど
18:21 (macbeth) ってことはAlive戻すときに死ぬのは間違いなくそれが原因だなぁ…
18:21 (Rick_) ちなみにpersistentを省略した時は1ですね
18:21 (Rick_) persistent=1と同義
18:21 (macbeth) ふむふむ
18:22 (Rick_) 非常に悩まされましたが収穫はあったかもしれませんね
18:22 (Rick_) ブログにもちょっとまとめておこうかな 今更感はあるかもしれませんがw
18:22 (macbeth) ここら辺の仕様ちゃんと理解できてないとnull関係は厳しいからねぇ…
18:23 (Rick_) さっき全ID親変更を自分で組んだら1ずれていたんですよねーw
18:23 (macbeth) めんどくさいと言えば
18:23 (macbeth) 32桁目がonになってる状態での1~3領域目の操作がちょっとだけ面倒なんだよねぇ
18:23 (macbeth) あれなんで反転してるのかなぁ
18:23 (Rick_) なぬ・・・
18:25 (macbeth) 32桁目がonの状態だとpersistent=xでchangestateした際に書き変わる数値がx-128になってるっぽいんだよねぇ…
18:25 (Rick_) なん・・・だと・・・
18:26 (macbeth) -1771105に書き換える時に気づいたんだけど
18:26 (macbeth) どうもうまくいかなくて調べたら
18:26 (macbeth) 数値が反転?してるっぽくてねぇ
18:26 (Rick_) それは困りますねぇ・・・
18:27 (macbeth) 予想なんだけど通常時は極大値から各数値を引くような挙動なんじゃないかな
18:27 (macbeth) んで32桁目をonにするとマイナスが付いて極小値になるからこうなるんじゃないかなぁと
21:02 (nanagami0) 少し前の話だけど、32bit目はint型の符号を意味する特別なbitだからかな >数値が反転
21:03 (Melt) 符号ビットですね
21:03 (nanagami0) ですです
21:04 (Rick_inomoto) それは分かってても反転する理由が分からないと・・・ね
21:04 (nanagami0) うーん、詳しくはint型調べてもらった方が早いけど
21:05 (nanagami0) そもそも負数って反転で表現するので
21:07 (Rick_inomoto) マイナスはアドレスの値が大きくなるほど数値としては小さくなるからmacbethさんの言っているので正常ということですね
21:08 (Melt) うんー
21:08 (Rick_inomoto) あれ?違いますね
21:08 (Melt) 11111111=-1
21:09 (Rick_inomoto) アドレスの値が大きくなるほど-1に近付くかな
21:09 (nanagami0) ですです
21:09 (Melt) 2の補数で00000001になるからねー
21:09 (Rick_inomoto) ただmacbethさんが1~3領域目がおかしいと言ってるので別のことかと思いました
21:10 (nanagami0) 操作するのは1領域でも扱いは4領域で一つなので影響受けるんじゃないかなと
21:10 (Rick_inomoto) 今思うと下1Byte~3Byte目と考えれば納得がいきますね
21:11 (Rick_inomoto) 領域って人によって全然意味するところが違って・・・w
21:11 (nanagami0) 確かにw
21:12 (nanagami0) しかし、PCと人って数字の扱い方違うので、不思議な動きに見えますよね
21:12 (Rick_inomoto) ですねーそういうものだと思って勝手に納得するようにしていました

NEW  |  HOME  |  OLD

Comment

コメントの投稿


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

Trackback

http://kyoakumugenirc.blog61.fc2.com/tb.php/1709-3ec6fb3c

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


基礎リンク集


リンク

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