6

バイト配列を int 配列広告に変換してから、バイト配列を int 配列に変換しようとしています。

byte 配列から int 配列への変換には、次のコードを使用しました。

int[] iArray = new int[someSize];
byte[] bArray = new byte[iArray.Length * sizeof(int)];
Buffer.BlockCopy(iArray, 0,bArray, 0, bArray.Length); // This code works correctly.

しかし、バイト配列から int 配列に変換する場合、配列の値が 256 より大きい場合iArray2、配列の値は false になりますiArray(オーバーフローかもしれませんが、わかりません)。

// What is the error in this code?.
int iArray2 = new int[someSize];
Buffer.BlockCopy(bArray, 0, iArray2, 0, iArray2.Length);

byte 配列から int 配列に正しく変換するにはどうすればよいですか?

4

1 に答える 1

7

Buffer.BlockCopy配列単位ではなく、常にバイト単位で処理します。

したがって、iArray2.Length2番目の呼び出しを渡すと、実際の配列の4分の1であるその数のバイトBlockCopy()がコピーされます。

于 2012-04-26T19:47:00.220 に答える