Actionscript littleEndian to c#

时间:2016-05-13 06:24:25

标签: c# actionscript-3 actionscript endianness

我继承了一个用actionscript编写的专有文件解析器。我正在将它转换为c#,我不知道如何处理以下步骤。

public function transform(input:ByteArray) : ByteArray
{
   var output:ByteArray = new ByteArray();
   output.endian = "littleEndian";
   output.writeBytes(input,0,input.length);
   return output;
}

我一直在努力阅读有关字节序的内容,我唯一能理解的是,这样做会颠倒字节的顺序。那是对的吗?如果是这样,我将如何在c#中复制它?

1 个答案:

答案 0 :(得分:2)

代码会将input中的数据复制到output未修改(因为字节没有字节顺序),然​​后返回的ByteArray的所有读取操作都将使用小端。

在小端平台上(例如x86,现在几乎所有操作系统都是ARM)如果你使用BinaryReader,.NET默认会使用little endian。

所以基本上,.NET中的代码是创建MemoryStream个字节,然后为该流创建BinaryReader

您可以使用BitConverter.IsLittleEndian

检查运行C#代码的平台是小端还是大端