0

Numberインスタンスのバイナリ表現が必要です。まず、toString()引数を使ってNumberクラスのメソッドを試し2ました。結果は14ビットでした。(番号9878.658456の場合)次に、次のようにNumberインスタンスをByteArrayに追加しようとしました。

    var b:ByteArray = new ByteArray();
    var n :Number = 9878.658456;
    trace(uint(n).toString(2));
    b.writeDouble(n);

次に、8バイトを読み取ろうとしました。

    trace((b.readByte() ).toString(2));
    trace((b.readByte() ).toString(2));
    trace((b.readByte() ).toString(2));
    trace((b.readByte() ).toString(2));
    trace((b.readByte() ).toString(2));
    trace((b.readByte() ).toString(2));
    trace((b.readByte() ).toString(2));
    trace((b.readByte() ).toString(2));

結果は本当に興味深いです、私が何をすべきかわからないバイナリ値があります。私はまだtoStringメソッドを理解していなかったと思います、APIの説明は私にとって十分ではありません。NumberインスタンスのIEEE表現を取得するためのヘルプはありますか?

4

1 に答える 1

0

最善の解決策は、あなた自身の解決策です。私はこれを思いつきました:

    var b:ByteArray = new ByteArray();
    var n :Number = 9878.658456;
    b.writeDouble(n);
    b.position=0;
    trace((b.readByte() & 0xFF).toString(2));
    trace((b.readByte() & 0xFF).toString(2));
    trace((b.readByte() & 0xFF).toString(2));
    trace((b.readByte() & 0xFF).toString(2));
    trace((b.readByte() & 0xFF).toString(2));
    trace((b.readByte() & 0xFF).toString(2));
    trace((b.readByte() & 0xFF).toString(2));
    trace((b.readByte() & 0xFF).toString(2));
    trace((b.readByte() & 0xFF).toString(2));

ここから結果を確認できます。正常に動作します。

于 2012-09-17T13:25:10.433 に答える