2012-04-26 95 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