Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/149.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在Actionscript 3中读取二进制C浮点?_C++_Actionscript 3_File Io_Floating Point_Binary Data - Fatal编程技术网

C++ 在Actionscript 3中读取二进制C浮点?

C++ 在Actionscript 3中读取二进制C浮点?,c++,actionscript-3,file-io,floating-point,binary-data,C++,Actionscript 3,File Io,Floating Point,Binary Data,我有二进制C/C++数据类型,例如内存中的C浮点版本,我需要将其读入Actionscript 3,我不希望从头开始编写代码 有人知道有什么库、示例代码、伪代码可以帮助实现这一点吗 例如: C/C++应用程序: float f = 1.1; SaveFloatToFile(f, 'myfile.bin'); Actionscript 3应用程序: var ba:ByteArray = ReadFromFile('myfile.bin'); var f:Float = ParseFloat(ba)

我有二进制C/C++数据类型,例如内存中的C浮点版本,我需要将其读入Actionscript 3,我不希望从头开始编写代码

有人知道有什么库、示例代码、伪代码可以帮助实现这一点吗

例如:

C/C++应用程序:

float f = 1.1;
SaveFloatToFile(f, 'myfile.bin');
Actionscript 3应用程序:

var ba:ByteArray = ReadFromFile('myfile.bin');
var f:Float = ParseFloat(ba); // I need code for ParseFloat() 
AS3类符合Javascript数字类,并且与Javascript数字类相同

我没有搜索AS3库,而是四处寻找一些Javascript代码,这些代码在AS3中只需稍加修改即可工作

在上,我发现了这个相当高密度的浮点解析器:

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

如果您希望代码具有可调试性和功能性,您可能会发现它更有用。

我做了更多的研究,发现ByteArray拥有我所需要的大部分功能,可能需要事先进行一些移位