我使用System.IO.BinaryReader从序列化文件中读取数据。该文件是大端。所以我从流中读取Int64(long)所做的是从它读取8个字节。我需要做的是将大字节的8个字节转换为小端长表示。
我不能使用System.BitConverter,因为它将使用Mono进行编译,以便在Linux上运行,可以在big endian上运行,而使用Visual Studio for Windows则是小端。
答案 0 :(得分:3)
您可以使用System.Net.IPAddress.NetworkToHostOrder
或System.Net.IPAddress.HostToNetworkOrder
对于前者,
System.Net.IPAddress.HostToNetworkOrder(0x0123456789abcdefl)
会返回efcdab8967452301
答案 1 :(得分:1)
如果您最终还是要使用Mono,可以使用DataConvert。
在Windows上也可以正常工作。我在我的一个项目中使用它。
答案 2 :(得分:1)
John Skeet的miscutil库实现了一个BigEndianBitConverter。