2010-12-07 5 views
0

Comment convertir un nombre de 64 bits en octets dans Flex/Flash? Encore assez nouveau pour fléchir si ... Dites-moi, il y a une meilleure façon de le faire que cela:Numéro vers 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

Comme une note de côté, 256^4 ne fonctionne pas, parce que le '^' est le XOR opérateur. Si vous voulez faire de l'exponentiation, il vous suffira de l'écrire en boucle ou implicitement comme vous le faites. – martineno

Répondre

0

J'ai finalement résolu celui-ci en faisant:

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

Est-ce que ce travail?

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

Trouvé dans ByteArray AS3 Reference

+0

J'ai finalement résolu celui-ci en faisant: i1 * (256 * (256 << 16)) + i2; – BlueVoodoo