skip to main |skip to sidebar

2008年1月7日

[AS3]把 ByteArray 转换为 16 进制

/**
* 把 ByteArray 转换为 16 进制。
* 格式为 "BB BB BB BB BB BB BB BB|BB BB...","BB" 表示一个字节。
*
* @param bytes ByteArray
* @return 把 ByteArray 转换为16进制后的字符串。
*/

public static function toHex(bytes:ByteArray):String {
var pos:int = bytes.position;
bytes.position = 0;
var result:String = "";
while(bytes.bytesAvailable >= 8) {
result += $toHexNum(bytes.readUnsignedByte()) + " "
+ $toHexNum(bytes.readUnsignedByte()) + " "
+ $toHexNum(bytes.readUnsignedByte()) + " "
+ $toHexNum(bytes.readUnsignedByte()) + " "
+ $toHexNum(bytes.readUnsignedByte()) + " "
+ $toHexNum(bytes.readUnsignedByte()) + " "
+ $toHexNum(bytes.readUnsignedByte()) + " "
+ $toHexNum(bytes.readUnsignedByte()) + "|";
}
while(bytes.bytesAvailable>1) {
result += $toHexNum(bytes.readUnsignedByte()) + " "
}
if(bytes.bytesAvailable) {
result += $toHexNum(bytes.readUnsignedByte());
}
bytes.position = pos;
return result;
}

/**
* @private
*
* 把 1 个字节转换为 16 进制的字符串。
*
* @param n 1 个字节。
* @return 16 进制的字符串。
*/
private static function $toHexNum(n:uint):String {
return n <= 0xF ? "0" + n.toString(16) : n.toString(16);
}

本文链接:https://assnippets.blogspot.com/2008/01/as3-bytearray-16.html转载请注明出处。

相关文章:

2评论:

匿名 说...

大哥 ,你怎么反过看呢!

匿名 说...

反过来后,请致电 xucheer@hotmail.com谢谢