将大端序数组转换为 Int64

本文关键字:转换 Int64 数组 序数 | 更新日期: 2023-09-27 18:32:06

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

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

将大端序数组转换为 Int64

您可以使用

System.Net.IPAddress.NetworkToHostOrderSystem.Net.IPAddress.HostToNetworkOrder

例如, System.Net.IPAddress.HostToNetworkOrder(0x0123456789abcdefl)会回来efcdab8967452301

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

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

John Skeet 的 miscutil 库实现了 BigEndianBitConverter。