読みバイナリー C浮Actionscript3?
-
12-09-2019 - |
質問
私はバイナリのC/C++データの種類(例:メモリのバージョンのC float)の必要性から読み込む.読み込んだActionscript3とはあまり好きではないのですがコードにこのゼロから立ち上げました。
誰にも知らのライブラリ、サンプルコードの擬似コードす。
例えば:
C/C++アプリ
float f = 1.1;
SaveFloatToFile(f, 'myfile.bin');
Actionscript3app:
var ba:ByteArray = ReadFromFile('myfile.bin');
var f:Float = ParseFloat(ba); // I need code for ParseFloat()
解決 2
私はいくつかのより多くの周り掘り行なったし、ByteArrayのは、私が(おそらくいくつかのビットは、事前にシフト付き)
必要なもののほとんどを持っていることを発見しました他のヒント
のAS3 番号 クラスに適合して IEEE754, は、同一のJavascript数クラスです。
より検索AS3図書館、掘り周辺の一部にJavascriptコードと協働しなければならな軽微な変更でAS3.
月 このサイト 見どことなく高密度floatパーサー:
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 );
};
希望の場合はコードするdebuggableなどの機能をよく目にすることでしょう このコード きである。
所属していません StackOverflow