Macromedia Flash非公式テクニカルノート

8進数はサポートされているのか

ID: FN0109005 Product: Flash

Platform: All
Version: 5.0

1. 8進数と16進数
ActionScriptでの8進数や16進数の一般的なサポートについて、『ActionScriptリファレンスガイド』に明確な記述は見当たらないようです。ただ、「ActionScript辞書」のColorオブジェクトで後者が、'parseInt'関数では両者とも、引数として使用されています。また、実際「0x」で始まる数値は、16進数として扱われます。


trace(0x10);
//出力ウィンドウの結果
16

2. 8進数のサポート
Colin Moock『ActionScript: The Definitive Guide』(O'REILLY)は、16進数だけでなく、8進数もActionScriptでサポートされると述べています(p.70)。ところが、「0」で始まる数値は、8と9以外0に変換されてしまうようです(Flash Player 5.0r30/41/42)。数値に8か9が含まれていると、その桁以降が10進数としてそのまま扱われます。


trace([012, 019, 091]);
//出力ウィンドウの結果
0,9,91

8進数にない8と9が含まれると結果が異なることは、8進数のサポートが本来意図されていたものであることを推測させます。そのサポートに、現行では問題があると考えられます。

3. 8進数の処理
8進数を正しく扱うには、'parseInt'関数の引数に値をストリングとして与える方法が確実でしょう。


trace(parseInt("012"));
//出力ウィンドウの結果
10

_____

作成者: 野中文雄
協力者: Ginga Baba
作成日: 2001年9月7日


© 2001 and beyond Fumio Nonaka All rights reserved.