2016-05-13 65 views
0

我繼承了用actionscript編寫的專有文件解析器。我將它轉換爲C#,並且我對如何處理以下步驟感到茫然。Actionscript littleEndian to 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的所有讀取操作將使用little endian。

在小端平臺上(例如x86和現在幾乎所有的操作系​​統ARM據我所知)如果使用BinaryReader,.NET將默認使用小端。

所以基本上,.NET中的代碼將創建一個MemoryStream的字節,然後爲該流創建一個BinaryReader

您可以檢查上你的C#代碼運行的平臺是否有很少或大端通過BitConverter.IsLittleEndian

+0

我覺得有點愚蠢,但它完美地工作! – trex005