在MSDN中我找不到任何東西,什麼會幫助我。在其他頁面上,我找到了一個將bytearray轉換爲HEX字符串的示例。我不得不修改了一點,但現在它的工作原理:
import flash.utils.ByteArray;
import mx.collections.ArrayCollection;
import mx.utils.UIDUtil;
public class RawTypeUtil
{
private static const hexValues:Array = [ '0', '1', '2', '3', '4', '5', '6', '7',
'8', '9', 'A', 'B', 'C', 'D', 'E', 'F' ];
private static const convertSequence:ArrayCollection = new ArrayCollection([ 3, 2,
1, 0, 5, 4, 7, 6, 8, 9,
10, 11, 12, 13, 14, 15 ]);
public function RawTypeUtil(lock:Class)
{
if (lock != RawTypeUtilLock)
{
throw new Error("Invalid RawTypeUtil access.");
}
}
public static function guidToHex(guid:String) : String
{
// the UIDUtil expects an uppercase uid...
guid = guid.toUpperCase();
if (!UIDUtil.isUID(guid))
{
return null;
}
var bytes:ByteArray = UIDUtil.toByteArray(guid);
var hex:String = "";
var byteArray:ArrayCollection = new ArrayCollection();
for (var i:uint = 0; i < bytes.length; i++)
{
var byte:uint = bytes.readUnsignedByte();
byteArray.addItem(byte);
}
for (var j:uint = 0; j < convertSequence.length; j++)
{
var index:uint = convertSequence.getItemAt(j) as uint;
var value:uint = byteArray.getItemAt(index) as uint;
var l:int = value/16;
var r:int = value % 16;
hex += hexValues[l] + hexValues[r];
}
return hex;
}
}
我不知道爲什麼我要改變前4個字節,第5和第6和第7和第8的順序是,是的ByteArray以正確的格式轉換。我希望有人能向我解釋這一點。
來源
2012-08-28 12:06:41
LKa
您是否要求我們爲您轉換該代碼?或者是否希望我們向您描述算法?或者是其他東西? – JeffryHouser
首先轉換代碼。如果我知道appendFormat-Method內部會發生什麼,並帶有參數「{0:x2}」 - 更好 – LKa
我不知道會發生什麼;但我不確定爲什麼你不能谷歌它並找出該方法的作用。那是我必須要做的。 – JeffryHouser