2011-10-14 82 views
1

數學基礎沒有人知道是否有任何可能性做的ByteArray簡單的elementwise數學而無需將其明確地,例如編程一個內置函數用於將一個bytearray(float類型)的所有元素乘以一個常量或者添加兩個bytearrays(具有指定的數據類型)的元素?在AS3的ByteArray

謝謝!

回答

0

你爲什麼不考慮使用Vector.<Number>代替ByteArray尤其是當陣列中的所有元素是同一類型的?

那麼你可以使用這樣的代碼:

// create vector with sample data 
var floatVector : Vector.<Number> = Vector.<Number>([5.1, 5.2, 5.3]); 

// define a method that will work on each element 
function multipleElementByTwo (item : Number, index : int, vector : Vector.<Number>) : void { 
    vector[index] = item * 2; 
} 

// see original data 
trace(floatVector); 

// run through all elements 
floatVector.forEach(multipleElementByTwo); 

// see modified data 
trace(floatVector); 
+0

事實上這就是一個很好的和快速的解決方案,如果你不已經有一個字節組數據。但是如果你有一個字節陣列中的數據,情況就會不同。在這種情況下,您必須首先將字節數組數據轉換爲矢量,然後執行數學運算並最終將其轉換回字節數組,並且這種轉換非常耗時(例如,用於實時聲音處理)。因此內在的功能將是一種更快的方式...... :) – spacetec