2012-04-26 40 views
6

バイト配列をint配列の広告に変換しようとしていて、バイト配列をint配列に変換しようとしています。私はこのコードを使用する配列intにバイト配列から変換するためC#でバイト配列を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. 

をだが、iArray2アレイにおける値が偽となった場合iArrayの値配列は

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

がどのように正しく配列をintにバイト配列から変換することができます(それがオーバーフローであるかもしれ、私は知りません。)256よりも大きくなっていますか?

+2

バイトは0〜255の値を格納します。結果のバイトは、たとえば1000という整数値から変換したときにどのような値をとると思いますか? –

答えて

7

Buffer.BlockCopyは常にバイトであり、配列単位ではありません。

あなたは二BlockCopy()呼び出しでiArray2.Lengthを渡す際にそのため、あなたはあなたの実際の配列の四分の一であること、多くのバイトを、コピーしています。

+0

okありがとう、どのようにバイト配列からint配列に変換できますか? – HforHisham

+0

@HeshamAbouelsoaod:バイト**で正しい長さ**を渡すことによって。 – SLaks

+0

それは働く、ありがとう。 – HforHisham

関連する問題