2016-05-13 9 views
0

Ich habe einen proprietären Datei-Parser geerbt, der in ActionScript geschrieben wurde. Ich konvertiere es in C# und ich bin ratlos, wie ich mit dem folgenden Schritt umgehen soll.Actionscript littleEndian zu C#

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

Ich habe versucht, auf endianness zu lesen, und das einzige, was ich, dass dies die Reihenfolge der Bytes tun würde ergründen kann, ist umgekehrt. Ist das korrekt? Wenn ja, wie würde ich das in C# replizieren?

Antwort

2

Der Code wird die Daten in input zu output unmodifiziert kopieren (da Bytes nicht endianess haben) und danach alle Leseoperationen von der zurückgegebenen ByteArray wird Little Endian verwenden.

Auf Little-Endian-Plattformen (x86 zum Beispiel und heutzutage so ziemlich alle OSE-ARMs, soweit ich weiß) verwendet .NET standardmäßig Little-Endian, wenn Sie beispielsweise BinaryReader verwenden.

Also im Grunde wäre dieser Code in. NET wäre ein MemoryStream der Bytes und dann eine BinaryReader für diesen Stream zu erstellen.

können Sie überprüfen, ob die Plattform, auf der Sie Ihre C# -Code auf wenig oder Big-Endian ist durch die Verwendung BitConverter.IsLittleEndian

+0

ich fühle mich ein wenig dumm, aber es funktionierte perfekt läuft! – trex005