これなんかものすごく初歩的なミスかもしれないのですが、はまり中。
a = 0xeeeeeeee;
b = a/2;
trace([b, b.toString(16)]);
b = Math.round(b);
trace([b, b.toString(16)]);
[output]
2004318071,77777777
2004318071,77777777
特に問題なし。で、端数がでるものをMath.roundで丸めてみる
a = 0xffffffff;
b = a/2;
trace([b, b.toString(16)]);
b = Math.round(b);
trace([b, b.toString(16)]);
[output]
2147483647.5,7fffffff
2147483648,-(0000000
丸めないのはまぁ予想通り。余計な親切心で丸めた結果のものは-(0000000となった。えーっとこれは何だろう?0x80000000だと思ったりしたんだけど、何故に“(“なのだろう?なんか基本的な16進数の考え方が間違っているのだろうか?頭が回らない・・・・。