2009-04-29 6 views
0

BitConverter.ToUInt16()은 바이트가 반전 될 것으로 예상하므로 메모리에 저장되는 방법이라고 생각합니다. 하지만 배열을 수정하지 않고 반전되지 않을 때 어떻게 변환 할 수 있습니까?Byte 배열을 C#의 Int-likes로 변환

Byte[] ba = { 0, 0, 0, 6, 0, 0 }; 
BitConverter.ToUInt16(ba, 2); // is 1536/0x0600, but I want 6/0x0006 

답변

4

그것은 소리 내 당신이 큰 또는 작은 엔디 언을 사용할지 여부를 지정할 수 있습니다 EndianBitConverterMiscUtil에서.

기본적으로 BitConverter과 동일한 기능을하지만 인스턴스 메서드로 제공합니다. 그런 다음 적절한 종류의 EndianBitConverter을 얻고 원하는대로하십시오.

는 (그것은 나에게 유용하지 않을 수도 있습니다 배열, 효율적으로 작업을위한 좀 더 많은 기능을 제공합니다.)

라이브러리는 매우 관대 한 라이센스하에 오픈 소스 화입니다.

+0

"당신이 이것을 바꾸고 싶다면 존 스캣이 당신보다 당신의 코드를 더 잘 알고 당신의 코드를 위해 이것을 이미 최적화했다"라는 면허가 있기 때문에 상당히 허용적인 의미인가? –

0

또한 IPAddress.HostToNetworkOrder를 사용할 수도 있습니다.