2011-10-28 29 views
7

Necesito leer una matriz de bytes de 16 bits como número corto sin signo, y Java no admite el tipo corto sin signo.
Entonces, ¿cómo puedo hacerlo? ¡¡Por favor ayuda!!Leer byte [] como unsigned short Java

+0

una matriz de bytes de 16 bits? Entonces, ¿es una matriz de longitud 2? –

+0

Creo que te refieres a convertir, no leer, ¿verdad? Entonces, convierta dos bytes en un solo valor entero? El truco es que necesitarás almacenarlo como 'int', no como' short'. – 101100

+0

El tipo de datos 'char' es esencialmente un' short' sin signo. Pero la técnica más común es usar un 'int'. – corsiKa

Respuesta

9

Asumiendo que tiene a disposición como datos binarios a partir de una fuente no Java que usted debe leer y trabajar con los valores de Java: leerlo como un (firmado) short, y luego convertirlo a int de la siguiente manera:

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

usted no puede representar todos los valores de un corto sin signo en un corto, pero en un int, se puede.