trace((0x7fffffff+1).toString(16)); // 出力: 7fffffff // 1足りない? 番町皿屋敷のような現象です。 trace((0x7fffffff+2).toString(16)); // 出力: 7fffffff trace((0x7fffffff+0).toString(16)); // 出力: 7fffffff trace((0x7fffffff-1).toString(16)); // 出力: 7ffffffe どうやら、Number.toString()メソッドの扱える最大の正の整数は、0x7fffffffのようです。この値は、10進数で表記すると、2,147,483,647になります。2の31乗マイナス1(2^31-1)ですので、32bitで扱える符号付き整数の最大値に当たります。 trace(0x7fffffff); // 出力: 2
![Number.toString()メソッドの限界](https://cdn-ak-scissors.b.st-hatena.com/image/square/a092edc21fa668dd8fd9d4117d5f1ea7812f16d6/height=288;version=1;width=512/http%3A%2F%2Ff-site.org%2Fogp_2013.jpg)