AS3中的C#数据类型

时间:2013-05-28 00:12:04

标签: c# actionscript-3 byte short

我正在将一些C#解压缩代码移植到AS3,并且因为它正在做一些非常复杂的事情,所以它使用了一系列数据类型,例如byteshort。问题是,AS3没有这些数据类型。

在大多数情况下,我可以使用uint来保存这些值。但是,在某些方面,我得到一条如下的行:

length[symbol++] = (short)len;

据我了解,这意味着必须读取len并将其作为length分配给short数组。所以我想知道,我如何在AS3中这样做?我猜也许会这样做:

length[symbol++] = len & 0xFF;

但我不确定这是否能给出正确的结果。

所以基本上,我的问题是:在AS3中执行此类操作时,如何确保保持正确的字节数?也许我应该使用ByteArray代替?

1 个答案:

答案 0 :(得分:0)

根据使用C#代码进行强制转换的原因,您可能需要或不需要继续使用AS3代码。如果强制转换纯粹是为了将类型调整为length数组的元素类型(即没有精度损失),则不需要强制转换。如果len实际上可能大于0x7FFF,则需要执行一些演员。

我认为如果你需要处理类似于C#ByteArray的结果,StreamReader可能是一个合理的选择,随机访问可能比必要的更难。

请注意,short长度为2个字节(System.Int16的同义词),因此要使用位操作转换为它,您需要执行& 0xFFFF。如果在有符号和无符号类型之间进行转换,也要非常小心......