2012-07-20 4 views
2

BitConverter.ToInt32를 사용하여 바이트 배열을 int로 변환하고 있습니다.BitConverter.ToInt32에서 2 바이트로 변환

필자는 단 두 바이트 [0] [26]을 가지고 있지만이 함수는 4 바이트를 필요로하므로 기존 바이트 앞에 두 개의 0 바이트를 추가해야합니다.

가장 빠른 방법은 무엇입니까?

감사합니다.

답변

2

대신 (int)BitConverter.ToInt16(..)을 사용해야합니다. ToInt16은 2 바이트를 short으로 읽어들입니다. 그런 다음 캐스팅 된 동영상을 int으로 간단히 변환하면됩니다.

+1

그러나 endianess에 대해 메모를 작성하고 싶을 수도 있습니다. –

1

Array.Copy. 마음에

int myInt = BitConverter.ToInt16(...); 

유지 : 그러나

byte[] arr = new byte[] { 0x12, 0x34 }; 
byte[] done = new byte[4]; 
Array.Copy(arr, 0, done, 2, 2); // http://msdn.microsoft.com/en-us/library/z50k9bft.aspx 
int myInt = BitConverter.ToInt32(done); // 0x00000026 

하는 BitConverter.ToInt16`에 호출 (바이트 []) 더 좋은 생각입니다 그럼 그냥 int로 저장 : 여기에 몇 가지 코드입니다 endianess 그러나. 리틀 엔디안 시스템에서는 { 0x00 0x02 }이 실제로는 512가 아니고 2입니다 (엔디안과 관계없이 0x0002은 여전히 ​​2입니다).

1

2 비트 만 읽는 BitConverter.ToInt16을 호출해야합니다.

short은 암시 적으로 int으로 변환 가능합니다.

관련 문제