数据来自程序外部,因为长数组必须转换为字节数组。如何有效地做到这一点?同样,有没有办法选择转换类型为 Little Endian 或 Big Endian。
问问题
3620 次
1 回答
5
您可以这样做将long
数组转换为byte
数组:
bool isLittleEndian = true;
byte[] data = new byte[longData.Length * 8];
int offset = 0;
foreach (long value in longData) {
byte[] buffer = BitConverter.GetBytes(value);
if (BitConverter.IsLittleEndian != isLittleEndian) {
Array.Reverse(buffer);
}
buffer.CopyTo(data, offset);
offset += 8;
}
这通常足够有效。如果您需要它更快,您应该在不安全的代码块中使用指针。
于 2012-05-22T15:20:12.827 回答