답변
요소 4-8 (또는 실제로 색인 3-7)은 5 바이트입니다. 아니 4.
당신은 소스가 오프셋 및 혼합 카운트 있습니다
Buffer.BlockCopy(bResponse, 3, temp, 0, 5);
지금 온도가 [23232]
포함됩니다. 마지막 4 바이트를 원하는 경우에
다음이를 사용
Buffer.BlockCopy(bResponse, 4, temp, 0, 4);
지금 온도가 [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 예제이를 변환 할 경우 위에 여전히 작동합니다.
이것은 답변이 아닙니다! 이 중 하나만 버퍼에서 3 블록을 가져 와서 이것을 어떻게 [Temp []에 할당할까요? –
이 각각은 개별적으로 읽어야하고, Temp의 정렬은 다시 4bytes 만 읽는 것입니다. 나는 다른 배열에서이 배열을 할당하는 것이 문제가되지 않는다. Temp [] –
@Artinos : 읽은 바이트 수에 대해 틀렸다. [Buffer.BlockCopy] (http://msdn.microsoft.com/en-us/library/system.buffer.blockcopy.aspx)의 MSDN 페이지를 읽으면 사용자가 'source offset'과'count' 매개 변수를 사용합니다. –
'int'를 함께 구성하는 4 바이트가 있다는 것을 의미합니까? – Rawling
네, 4Byte가 있고 Temp도 4 바이트가 필요하지만 메서드는 1 바이트 만 리턴하고 나머지는 건너 뛰기 때문에 어떻게 Temp에 4 바이트를 모두 반환 할 수 있습니까? –
CMD는 [493131]인데 처음 49 바이트 인 첫 번째 바이트 –