3

長い配列をバイト配列に変換する必要があるため、データはプログラムの外部から取得されます。それを効率的に行う方法は?同様に、変換のタイプをリトルエンディアンまたはビッグエンディアンとして選択する方法はありますか。

4

1 に答える 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 に答える