将大端数组转换为Int64

时间:2012-04-22 23:16:12

标签: c# .net mono bitconverter

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

我不能使用System.BitConverter,因为它将使用Mono进行编译,以便在Linux上运行,可以在big endian上运行,而使用Visual Studio for Windows则是小端。

3 个答案:

答案 0 :(得分:3)

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

对于前者, System.Net.IPAddress.HostToNetworkOrder(0x0123456789abcdefl)会返回efcdab8967452301

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

John Skeet的miscutil库实现了一个BigEndianBitConverter。