0

System.IO.BinaryReaderを使用して、シリアル化されたファイルからデータを読み取ります。ファイルはビッグエンディアンです。したがって、ストリームからInt64(long)を読み取るために行ったことは、ストリームから8バイト読み取られました。私がする必要があるのは、これらの8バイトのビッグエンディアンをリトルエンディアンの長い表現に変換することです。

System.BitConverterは、ビッグエンディアンで実行できるLinuxで使用するためにMonoでコンパイルされ、リトルエンディアンであるVisual Studio for Windowsでコンパイルされるため、使用できません。

4

3 に答える 3

3

System.Net.IPAddress.NetworkToHostOrderまたはを使用できますSystem.Net.IPAddress.HostToNetworkOrder

たとえば System.Net.IPAddress.HostToNetworkOrder(0x0123456789abcdefl)efcdab8967452301

于 2012-04-22T23:26:32.540 に答える
1

とにかくMonoを使用することになった場合は、DataConvertを使用できます。

Windowsでも問題なく動作します。私は自分のプロジェクトの1つでそれを使用しています。

于 2012-04-22T23:55:04.443 に答える
1

John Skeetのmiscutilライブラリは、BigEndianBitConverterを実装しています。

于 2012-04-23T00:34:59.043 に答える