2

私はJavaクラスをAS3に移植することに取り組んでいます。クラスの根性のほとんどは、ビットレベルのプログラミングに関係しています。私はJavaで書かれたこのコードに出くわしました:

int pixels[] = new int[width * height];
short gpixels[] = new short [width * height];

コードのさらに先で、私は次のようなものに出くわしました:

gpixels[i]

AS3のこれら2つの変数に相当するものは何ですか。それらはByteArrayまたは整数ですか?「short」は16ビット整数、「int」は32ビット整数だと思いました。

4

2 に答える 2

7

ActionScriptには、short、long、float、doubleなどはありません。

数値型をint、uint、またはNumberにマップします。

JavaタイプAS3タイプ
----------------- --------------
java.lang.Integer int
java.lang.Short int
java.lang.Long Number
java.lang.Double Number
java.lang.Float番号

AS3 int制限:-2147483647から2147483647
AS3 uint制限:0〜4294967295
AS3番号制限:-1.79769313486231e+308から1.79769313486231e+308

AS3番号はIEEE-754倍精度浮動小数点数です

AS3にはバイト演算とビット演算があります。

于 2011-10-21T06:08:16.323 に答える
1

データ型のサイズを指定すると正しいです。shortは16ビット、intは32ビットです。誰かが配列にメモリを保存しようとしている場合、shortの使用が最もよく見られます。shortは結局のところ整数の半分のサイズです。

実際の配列の大きさ、およびその位置に格納されている値(カラーコードなど)をどのように処理するかに応じて、可能な限り最小のデータ型を使用することをお勧めします。

640 x 480の整数の配列は、オーバーヘッドなしで少なくとも1,228,800バイトかかりますが、640x480のショートの配列は614,400バイトしかかかりません。

疑わしい場合は、特にバッファで大量のメモリをすばやく消費するグラフィカル環境では、できるだけ少ないメモリを使用してください。

于 2011-10-21T05:44:45.663 に答える