現在の使用ガルド合計値は43990479です。




約3週間前、使用ガルド合計値をカンストさせようとしました。
個人的に最大所持金額は99999999でカンストしてるから
使用ガルド合計値も99999999だと思ったらとんでもないことに…。




あれれ?99999999ガルド超えてるよ。
こんな結果なので検証するため3週間ほどかけて所持金を貯めました。
申し訳ないことに長くなってしまいましたが詳しいことは続きに書いてあります。

このために所持金を貯めたのでガルドを使いまくりたいと思います。
使用ガルド合計値が1億ガルドを超えるどころか10億ガルドを超えてきた。





ここまでくると例の数値が思い浮かぶはずです。
そう!そのまさか2147483647ガルドを確認できました。




この数値は予想できましたが問題はここから。
2147483647ガルドから1ガルドでも消費すると使用ガルド合計値はどうなるかです。
いろいろと気になるけど2147483647ガルドより1大きい数値になるように調整してみました。


























えーっと…「-648ガルド」ってどういうことですか?
オーバーフローが起きたのは分かりますがなぜこの数値になったのか?

はっきりとは分かりませんが個人的な予想としては
2147483647より1大きい数値でオーバーフローした場合
「0」になるか、マイナスの数値になって「-2147483648」になるはずです。
おそらく桁が足りないか、何かのせいで「-648」になったと思っています。
その場合、-2147483648の下3桁は「648」という数字なのでなんとなく理解できる。
これは私の予想で合ってると限らないので詳しい方がいたら教えて頂けると幸いです。


さらに検証していき-648ガルドの状態から10ガルドを使用すると-638ガルドになります。
まだ数値は変動するようなので試しに-648ガルドの状態から648ガルド使用してみました。




なんだか「0」になっちゃいましたね。
0ガルドの状態から1ガルド使用してみたところ…。
今度は「-999」になったので、どうやら結果が出たように感じます。





まとめ
簡単になりますが数字を1ずつ動かしてまとめると。
【2147483647→-648→-647………-2→-1→0】となります。

オーバーフローした後、「0」になってからは
【0→-999→-998→-997………-2→-1→0→-999→-998→-997……】
このようにひたすらループし続けるという結果がでました。
現段階の結果から限界値はないと言ったのが良いと感じます。
ですが使用ガルド合計値の最大値と最小値はいくつなのか判明しました。

使用ガルド合計値の最大値は「2147483647」
使用ガルド合計値の最小値は「目に見える数値なら-999」



マイナス値の状態で2147483647ガルド分を使用したらプラス値に変化すると思う。
オーバーフローしたということはマイナス値から再びプラス値になるはずです。
だから千の位以上の数値は目に見えてないだけで実は存在してると思います。

要はマイナス値の状態で2147483647ガルド分を使用すれば分かるけど…。
再び2147483647ガルド集めるには約2132時間という長い時間が必要になる。
うん、はっきり言ってこれ以上ガルドを集めるなんてやってられないよね。(笑)
まぁ…検証しなくてもきっとマイナス値から再びプラス値になると思うよ…たぶん


個人的な感想とか
所持金が1億ガルド以上あるとアイテムなどが売れなくなる。
よって【アイテムなどを購入する→アイテムなどを捨てる】と
このように繰り返しをして使用ガルド合計値を増やしていきました。
これが面倒でオーバーフローするまでに2時以上もかかったので疲れましたよ。

レコードにこだわる方はオーバーフローしないよう20億辺りで辞めたのがいいと思う。
長文になって申し訳ありませんがここまで目を通してくれた御方には感謝しています。
このような長い記事を最後まで読んで下さりまして本当にありがとうございましたm(__)m
2012.05.16 Wed l PS2 テイルズ オブ ジ アビス l コメント (8) トラックバック (0) l top

コメント

管理人のみ閲覧できます
このコメントは管理人のみ閲覧できます
2012.05.17 Thu l . l 編集
管理人のみ閲覧できます
このコメントは管理人のみ閲覧できます
2012.05.17 Thu l . l 編集
非公開コメントの方へ
そう言って頂けるとうれしいです。
本文にもありますが最後まで読んで下さりありがとうございました。

> -648から-999になったときは内部は-2147482999になってるはずですね。
オーバーフローを起こした後、見た目はただループしてるように見えますが
やはり内部ではきちんとカウントされているんじゃないかなぁと思います。

記事を見直したところ、たしかにそれは2箇所だけでした。
なるほど!そのような設定なら-648になる可能性が高いです。
すっかり見逃していたので細かく説明して頂きありがとうございます。
16進数や7FFFFFFFという用語を出さなくても分かる御方がいてうれしいです。
2012.05.17 Thu l ken925s. URL l 編集
No title
こちらこそKenさんがそっち方面も通じると分かって嬉しいですね^^ さすがです。
まぁ、俺はほんの少ししかわからないですけど分からない事で仮説を立てたり考えたりするのはなかなか面白いです。

確かに詳しい人の意見とか聞いてみたいですね^^
2012.05.17 Thu l f164. URL l 編集
f164さんへ
申し訳ないことに私はこのような用語は
聞いたことあるくらいでそんなに知識はないですよ。(笑)

この記事をまとめる前にいろんな仮説を立てるのが楽しかったね。
でも個人的には仮説を立てるのは一人でやるより
数人で話し合ってまとめるのが楽しいと感じます。

f164さんの言うように知り尽くしている方の意見を聞いてみたいね。
2012.05.17 Thu l ken925s. URL l 編集
承認待ちコメント
このコメントは管理者の承認待ちです
2013.09.20 Fri l . l 編集
管理人のみ閲覧できます
このコメントは管理人のみ閲覧できます
2013.09.20 Fri l . l 編集
非公開コメントの方へ
仰る通り細かいですがプログラムの設定上により
7FFFFFFまでなのでこれは仕方がないと思います。
2013.09.21 Sat l ken925s. URL l 編集

コメントの投稿












トラックバック

トラックバック URL
http://kentales.blog118.fc2.com/tb.php/719-e5eb27f5
この記事にトラックバックする(FC2ブログユーザー)