Question

Je binaires types de données C / C ++ (par exemple dans la version de la mémoire d'un flotteur C) que je dois lire en Actionscript 3 et préférerais ne pas coder ce à partir de zéro.

Quelqu'un sait de toutes les bibliothèques, exemples de code, code pseudo pour aider?

Par exemple:

C / C ++ application:

float f = 1.1;
SaveFloatToFile(f, 'myfile.bin');

Actionscript 3 app:

var ba:ByteArray = ReadFromFile('myfile.bin');
var f:Float = ParseFloat(ba); // I need code for ParseFloat() 
Était-ce utile?

La solution 2

Je l'ai fait un peu plus creuser autour et a découvert que la plupart des ByteArray a ce que je dois (peut-être avec un certain décalage de bits préalable)

Autres conseils

Le la classe Numéro conforme à IEEE 754 , et est identique à la classe numéro Javascript.

Au lieu de recherche pour les bibliothèques AS3, je fouilla pour un code Javascript qui devrait fonctionner avec seulement des modifications mineures dans AS3.

ce site je trouve cela plutôt analyseur flottant à haute densité:

p.decodeFloat = function( data, precisionBits, exponentBits ){
    var b = new this.Buffer( this.bigEndian, data );
    b.checkBuffer( precisionBits + exponentBits + 1 );
    var bias = Math.pow( 2, exponentBits - 1 ) - 1, signal = b.readBits( precisionBits + exponentBits, 1 ), exponent = b.readBits( precisionBits, exponentBits ), significand = 0,
    divisor = 2, curByte = b.buffer.length + ( -precisionBits >> 3 ) - 1;
    do
        for( var byteValue = b.buffer[ ++curByte ], startBit = precisionBits % 8 || 8, mask = 1 << startBit; mask >>= 1; ( byteValue & mask ) && ( significand += 1 / divisor ), divisor *= 2 );
    while( precisionBits -= startBit );
    return exponent == ( bias << 1 ) + 1 ? significand ? NaN : signal ? -Infinity : +Infinity : ( 1 + signal * -2 ) * ( exponent || significand ? !exponent ? Math.pow( 2, -bias + 1 ) * significand : Math.pow( 2, exponent - bias ) * ( 1 + significand ) : 0 );
};

Si vous préférez que votre code soit débogable ainsi que fonctionnel, vous pouvez trouver ce code pour être plus utile à la place.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top