2010-12-07 9 views
0

Wie konvertiere ich eine 64-Bit-Zahl in ein Byte-Array in Flex/Flash? Noch ziemlich neu zu flex so ... Sagen Sie mir, es gibt einen besseren Weg, es als das zu tun:Nummer zu ByteArray (Int64 BigEndian)

//Some Int64 value 
var n:Number = 256 * 256 * 256 * 256 * 256; 

//256^4 not working in AS?   
var i1:uint = n/(256 * 256 * 256 * 256); 
var i2:uint = n - i1; 

var b:ByteArray = new ByteArray(); 
b.writeUnsignedInt(i1); 
b.writeUnsignedInt(i2); 
+0

Als Randbemerkung, 256^4 nicht funktioniert, weil die '^' die bitweise XOR Operator. Wenn Sie eine Potenzierung durchführen wollen, müssen Sie sie nur als Schleife oder implizit schreiben, so wie Sie es tun. – martineno

Antwort

0

schließlich ich diese, indem Sie gelöst:

i1 * (256 * (256 << 16)) + i2 
2

Wird das funktionieren?

var n:Number = 256 * 256 * 256 * 256 * 256; 
var b:ByteArray = new ByteArray(); 
b.writeDouble(n); 

Gefunden in ByteArray AS3 Reference

+0

Ich löste schließlich dieses eine indem ich tue: i1 * (256 * (256 << 16)) + i2; – BlueVoodoo