سؤال

لدي أنواع بيانات C / C ++ Binary (على سبيل المثال في إصدار الذاكرة من Float 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() 
هل كانت مفيدة؟

المحلول 2

لقد قمت ببعض الحفر حولها واكتشفت أن bytearray لديه معظم ما أحتاجه (ربما مع تحول بعض الشيء مسبقا)

نصائح أخرى

AS3. رقم فئة تتفق معنا IEEE 754., ، وهو متطابق مع فئة رقم 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 );
};

إذا كنت تفضل أن تكون التعليمات البرمجية الخاصة بك أن تكون موثوقة وكذلك وظيفية، فقد تجد هذا الرمز أن تكون أكثر فائدة بدلا من ذلك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top