AS3 ByteArray readShort

时间:2011-10-26 12:53:00

标签: actionscript-3 bytearray

我必须读取以不同方式写入的字节序列(writeBite,writeShort和writeMultiByte),并显示它们在视频上具有HEX字节列表。 我的问题是转换数字1500,我尝试了其他数字,结果是正确的... 这是一个例子:

var bytes:Array = [];
var ba:ByteArray = new ByteArray();
ba.writeShort(1500);

ba.position = 0;

for (var i=0; i<ba.length; i++)
{
   bytes.push(ba.readByte().toString(16));
}
trace(bytes);//5,-24 i'm expetting 5,DC

2 个答案:

答案 0 :(得分:1)

方法readByte读取带符号的字节(范围从-128到127)。最重要的位定义了符号。如果数字大于127(如DC),该位将为1,并且该数字将被视为负数。 否定字节的two's complement用于获取签名值。如果DC为二进制1101 1100,则补码为0010 0011,即23。添加一个,该值将被视为否定,这将为您提供您所看到的-24

您应该使用readUnsignedByte来读取0到255之间的值。

答案 1 :(得分:0)

由于AS3中没有真正的字节类型,readByte()返回一个int。你可以试试这个:

for (var i=0; i<ba.length; i++)
{
    bytes.push(ba[i].toString(16));
}