我正在尝试将字节数组转换为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.
Run Code Online (Sandbox Code Playgroud)
但是当从字节数组转换到int数组时,iArray2当数组中的值iArray大于256 时,数组中的值变为false (可能是溢出,我不知道.)
// What is the error in this code?.
int iArray2 = new int[someSize];
Buffer.BlockCopy(bArray, 0, iArray2, 0, iArray2.Length);
Run Code Online (Sandbox Code Playgroud)
如何正确地从字节数组转换为int数组?
Buffer.BlockCopy总是以字节为单位,而不是数组单位.
因此,当您传入iArray2.Length第二个BlockCopy()调用时,您将复制许多字节,这是实际数组的四分之一.