2011-10-28 2 views
7

16 비트의 바이트 배열을 부호없는 short number로 읽어야하며 Java는 부호없는 short 형식을 지원하지 않습니다.
그래서 어떻게 할 수 있습니까 ?? 도와주세요!!Byte []를 부호없는 short Java로 읽기

+0

16 비트의 바이트 배열을 살펴 수 있을까요? 그래서 길이 2 배열입니까? –

+0

나는 당신이 개종을 의미한다고 생각하는데, 읽지는 않았습니까? 그래서, 2 바이트를 하나의 정수 값으로 변환 하시겠습니까? 트릭은'short'가 아니라 int로 저장해야한다는 것입니다. – 101100

+0

'char' 데이터 유형은 본질적으로 서명되지 않은'short'입니다. 하지만 가장 일반적인 기법은 'int'를 사용하는 것입니다. – corsiKa

답변

9

을 제공이 문서에서보세요 short (서명) 한 다음 다음과 같이 int로 변환 :

int intVal = shortVal >= 0 ? shortVal : 0x10000 + shortVal 

당신은 짧은에 서명되지 않은 짧은 모든 값을 나타낼 수는 없지만, int로, 당신은 할 수 있습니다.

4

부호없는 short를 사용해야하는지는 모르겠지만 그렇지 않은 경우에는 항상 char을 사용하여 부호없는 short를 보유 할 수 있습니다. 로 읽기 : 당신은 당신이 읽고 자바 값과 함께 작동해야 비 Java 소스에서 이진 데이터로 사용할 수 그것을 가지고 가정 간단한 개요

http://darksleep.com/player/JavaAndUnsignedTypes.html

관련 문제