2016-05-13 5 views
0

私は、独自のファイルパーサーをactionscriptで継承しています。私はそれをC#に変換しており、次のステップをどのように処理するかについては迷っています。Actionscript littleEndianからc#

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

私はエンディアンをよく読んしようとしてきた、と私はこれを行うだろうと尋ことができる唯一のことは、バイトの順序を逆です。あれは正しいですか?もしそうなら、どうすればCでそれを複製できますか?

答えて

2

inputのデータはoutputにコピーされます(バイトにエンディアンがないため)。その後、返されたByteArrayからのすべての読み取り操作でリトルエンディアンが使用されます。

リトルエンディアンのプラットフォーム(例えば、x86の場合は現在、私が知っている限りほとんどすべてのOSのARMです)。たとえば、BinaryReaderを使用する場合、.NETはデフォルトでリトルエンディアンを使用します。

基本的に.NETのコードは、そのバイトのMemoryStreamを作成してからそのストリームのBinaryReaderを作成することです。

あなたのC#のコードが実行されているプラ​​ットフォームは、私は少しダム感じるが、それは完全に働いたBitConverter.IsLittleEndian

+0

を使用してほとんど、またはビッグエンディアンであるかどうかを確認することができます! – trex005

関連する問題