c#-4.0 - 将字节数组从小端转换为大端,反之亦然

标签 c#-4.0 endianness

我将如何将字节数组 Byte[] 从小端转换为大端。

我正在考虑将这个程序移植到 Mono 并想知道最好的方法。任何帮助,将不胜感激。

编辑:我正在阅读有关寡妇和单声道的文件。

谢谢。
鲍勃。

最佳答案

除非您知道 byte[] 中的内容,否则您无法“将 byte[] 转换为大端”。 .例如,2 字节整数需要交换两个字节,而 4 字节整数需要反转 4 个字节。如果数组只包含一个整数,则反转元素将起作用。如果不是,您将需要分别处理数组中包含的每个不同的实体。

Mono.DataConvert是一个可以在这里提供帮助的库,如果您知道需要将数组的哪些段视为哪种数据类型。我强烈建议您查看这个库;我在几个项目中使用它,它非常漂亮。它甚至是 MIT 许可的,并且包含在一个源文件中,因此您可以直接将其编译为您正在构建的任何程序集。

关于c#-4.0 - 将字节数组从小端转换为大端,反之亦然,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4649303/

相关文章:

objective-c - 更改传递给 OpenAL 的音频数据的字节顺序

c# - Assembly.GetExecutingAssembly() 和 typeof(program).Assembly 之间的区别

c# - 以 2 位精度存储 double

unix - Unix hexdump 中的字节序

c++ - 使用 reinterpret cast 时交换字节序

go - 关于字节顺序和标准库的问题?

c# - StreamWriter 不创建文本文件

C# 4.0 - 如何处理可选的字符串参数

winforms - 声音播放程序

delphi - 如果 Windows/Delphi/IDE 暗示小端顺序,我如何从大端二进制文件中读取整数?