0

我使用 System.IO.BinaryReader 从序列化文件中读取数据。该文件是大端。所以我从流中读取 Int64 (long) 的操作是从中读取 8 个字节。我需要做的是将这 8 个字节的大端转换为小端长表示。

我不能使用 System.BitConverter,因为它将使用 Mono 编译以在 Linux 上使用,可以在大端和 Visual Studio for Windows 上运行,它可以在小端上运行。

4

3 回答 3

3

您可以使用System.Net.IPAddress.NetworkToHostOrderSystem.Net.IPAddress.HostToNetworkOrder

例如, System.Net.IPAddress.HostToNetworkOrder(0x0123456789abcdefl)将返回efcdab8967452301

于 2012-04-22T23:26:32.540 回答
1

如果您最终还是要使用 Mono,则可以使用DataConvert

在 Windows 上也可以正常工作。我在我的一个项目中使用它。

于 2012-04-22T23:55:04.443 回答
1

John Skeet 的miscutil库实现了 BigEndianBitConverter。

于 2012-04-23T00:34:59.043 回答