2011-10-27 33 views
1

在閃存中,對數字執行按位操作總是剝離掉浮點數部分。
有沒有辦法在閃存中獲得數字的位表示?閃存中的位數

我嘗試了谷歌搜索,但要麼我不能很好地說它,或者它不是那麼容易找到。

編輯,清除的東西了:我專門,那是代表浮點數在Flash中,一般沒有數量級。我想我可以寫有沒有一種方法,在閃存中獲得浮點數的位表示?

回答

4

,我能想到的把我的頭頂部的唯一方法是使用ByteArray

事情是這樣的:

 var x:Number = 1.532; 
     var ba:ByteArray = new ByteArray(); 
     ba.writeDouble(x); 
     ba.position = 0; 

     var high32bits:uint = ba.readUnsignedInt(); 
     var low32bits:uint = ba.readUnsignedInt(); 

     trace(high32bits.toString(16)); // 3ff88312 
     trace(low32bits.toString(16)); // 6e978d50 
+0

好主意!非常勤奮,但它很有效。我仍然想知道是否還有更好的方法。 – Maurycy

-1

如果您只是想打印出二進制表示(即2 = 10),則可以使用Number的toString()函數並指定一個基數值。

ex。

var x:Number = 2; 
trace(x.toString(2)); 
+0

恐怕也不起作用:' Number(1.532).toString(2);'和'Number(1.0).toString(2);'都給出'1'。 – Maurycy