在C#中将字节数组转换为int数组时出错

时间:2012-04-26 19:38:56

标签: c# byte

我正在尝试将字节数组转换为int数组广告,然后将字节数组转换回int数组。

为了从字节数组转换为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数组时,当iArray2数组中的值大于256时,iArray数组中的值变为false(可能是溢出,I不知道。)

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

如何正确地将字节数组转换为int数组?

1 个答案:

答案 0 :(得分:7)

Buffer.BlockCopy始终处理字节,而不是数组单元。

因此,当您在第二个iArray2.Length调用中传递BlockCopy()时,您将复制许多字节,这是实际数组的四分之一。