Domanda

Ho C / C ++ tipi di dati binari (per esempio in versione memoria di un galleggiante C) che ho bisogno di leggere in Actionscript 3 e preferisce non codificare questo da zero.

Qualcuno sa di eventuali librerie, codice di esempio, pseudo codice per aiutare con questo?

Ad esempio:

C / C ++ app:

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() 
È stato utile?

Soluzione 2

Ho fatto un po 'di scavare intorno e ha scoperto che ByteArray ha la maggior parte di ciò che ho bisogno (forse con un po' po 'di spostamento in anticipo)

Altri suggerimenti

L'AS3 Numero classe è conforme a IEEE 754 , ed è identico alla classe numero di Javascript.

Invece di ricerca per le librerie AS3, ho scavato in giro per un po 'di codice JavaScript che dovrebbe funzionare con la sola modifica secondaria in AS3.

questo sito ho trovato questo piuttosto alta densità float parser:

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 );
};

Se si preferisce il codice per essere possibile eseguire il debug e funzionale, si possono trovare questo codice per essere più utile, invece.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top