0

一連の数値を含むバイト配列があります...

残りではなく、ブロックします。

ブロック 4 ~ 8 をすべて含めるにはどうすればよいですTemp[]か??

4

1 に答える 1

2

要素 4 ~ 8 (または実際にはインデックス 3 ~ 7) は 5 バイトです。4 ではありません。
ソース オフセットとカウントが混同されています。

Buffer.BlockCopy(bResponse, 3, temp, 0, 5);

これで、temp に が含まれます[23232]

最後の 4 バイトが必要な場合は、次を使用します。

Buffer.BlockCopy(bResponse, 4, temp, 0, 4);

これで、temp に が含まれます[3232]
これを int に変換するには:

if (BitConverter.IsLittleEndian)
  Array.Reverse(temp);

int i = BitConverter.ToInt32(temp, 0);

編集:([43323232]実際には あなたのコメントの後{43, 32, 32, 32}

var firstByte = temp[0];   // This is 43
var secondByte = temp[1];  // This is 32
var thirdByte = temp[2];   // 32
var fourthByte = temp[3];  // 32

これを int に変換したい場合、上記の BitConverter の例は引き続き機能します。

于 2012-12-18T09:22:53.217 に答える