2012-04-26 81 views
6

我想将字节数组转换为int数组广告,然后将字节数组转换回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数组中的值变为假时在iArray值数组大于256(可能是溢出,我不知道)

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

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

+2

一个字节存储0到255之间的值。当从一个整数值1000(例如1000)转换时,您希望得到的字节具有什么值? – 2012-04-26 19:45:30

回答

7

Buffer.BlockCopy总是成交字节,而不是阵列单元。

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

+0

好的,谢谢,我怎么能从字节数组转换为int数组? – HforHisham 2012-04-26 19:52:24

+0

@HeshamAbouelsoaod:以字节**传递正确的长度**。 – SLaks 2012-04-26 19:53:03

+0

好吧,它的工作,谢谢。 – HforHisham 2012-04-26 20:06:12